All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@suse.de>
To: Ingo Molnar <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org, Andrew Morton <akpm@osdl.org>
Subject: Re: [patch] fix diskstats_show() accounting with PREEMPT
Date: Wed, 22 Sep 2004 12:55:35 +0200	[thread overview]
Message-ID: <20040922105534.GF2299@suse.de> (raw)
In-Reply-To: <20040921153750.GA21449@elte.hu>

On Tue, Sep 21 2004, Ingo Molnar wrote:
> 
> there is another (minor) bug that the smp_processor_id() debugger
> unearthed: diskstats_show() could do a disk_round_stats() ->
> disk_stat_add() with preemption enabled - possibly resulting in losing
> statistics updates.
> 
> Patch attached. (The overwhelming majority of disk_stat_add() callers
> have preemption disabled so fixing the remaining two was the best.)
> 
> 	Ingo
> 
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> 
> --- linux/drivers/block/genhd.c.orig	
> +++ linux/drivers/block/genhd.c	
> @@ -365,7 +365,9 @@ static ssize_t disk_size_read(struct gen
>  
>  static ssize_t disk_stats_read(struct gendisk * disk, char *page)
>  {
> +	preempt_disable();
>  	disk_round_stats(disk);
> +	preempt_enable();
>  	return sprintf(page,
>  		"%8u %8u %8llu %8u "
>  		"%8u %8u %8llu %8u "
> @@ -494,7 +496,9 @@ static int diskstats_show(struct seq_fil
>  				"\n\n");
>  	*/
>   
> +	preempt_disable();
>  	disk_round_stats(gp);
> +	preempt_enable();
>  	seq_printf(s, "%4d %4d %s %u %u %llu %u %u %u %llu %u %u %u %u\n",
>  		gp->major, n + gp->first_minor, disk_name(gp, n, buf),
>  		disk_stat_read(gp, reads), disk_stat_read(gp, read_merges),

Looks fine, thanks Ingo.

-- 
Jens Axboe


      reply	other threads:[~2004-09-22 10:57 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-21 15:37 [patch] fix diskstats_show() accounting with PREEMPT Ingo Molnar
2004-09-22 10:55 ` Jens Axboe [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20040922105534.GF2299@suse.de \
    --to=axboe@suse.de \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.