Message ID | tencent_6E80209FC9C7F45EE61E3FB3E7952A226A07@qq.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | eventfd: move 'eventfd-count' printing out of spinlock | expand |
On 9/26/23 8:05 AM, wenyang.linux@foxmail.com wrote: > From: Wen Yang <wenyang.linux@foxmail.com> > > It is better to print debug messages outside of the wqh.lock > spinlock where possible. Does it really matter for fdinfo? Your commit message is a bit light, so I'm having to guess whether this is fixing a real issue for you, or if it's just a drive-by observation.
On 2023/9/27 15:32, Jens Axboe wrote: > On 9/26/23 8:05 AM,wenyang.linux@foxmail.com wrote: >> From: Wen Yang<wenyang.linux@foxmail.com> >> >> It is better to print debug messages outside of the wqh.lock >> spinlock where possible. > Does it really matter for fdinfo? Your commit message is a bit > light, so I'm having to guess whether this is fixing a real issue > for you, or if it's just a drive-by observation. > Thanks for your comments. There is a business running on our machine that frequently calls eventfd_write(). We will resend the V2 and provide a detailed explanation. -- Best wishes, Wen
diff --git a/fs/eventfd.c b/fs/eventfd.c index 33a918f9566c..6c5fe0f40aa5 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c @@ -295,11 +295,13 @@ static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t c static void eventfd_show_fdinfo(struct seq_file *m, struct file *f) { struct eventfd_ctx *ctx = f->private_data; + unsigned long long count; spin_lock_irq(&ctx->wqh.lock); - seq_printf(m, "eventfd-count: %16llx\n", - (unsigned long long)ctx->count); + count = ctx->count; spin_unlock_irq(&ctx->wqh.lock); + + seq_printf(m, "eventfd-count: %16llx\n", count); seq_printf(m, "eventfd-id: %d\n", ctx->id); seq_printf(m, "eventfd-semaphore: %d\n", !!(ctx->flags & EFD_SEMAPHORE));