linux-um archives
 help / color / mirror / Atom feed
From: Blaisorblade <blaisorblade@yahoo.it>
To: Jeff Dike <jdike@addtoit.com>
Cc: user-mode-linux-devel@lists.sourceforge.net
Subject: [uml-devel] Re: "Sleeping in atomic section" with ubd aio patch
Date: Wed, 14 Sep 2005 22:00:39 +0200	[thread overview]
Message-ID: <200509142200.39886.blaisorblade@yahoo.it> (raw)
In-Reply-To: <20050914192230.GC9001@ccure.user-mode-linux.org>

On Wednesday 14 September 2005 21:22, Jeff Dike wrote:
> On Tue, Sep 13, 2005 at 08:01:40PM +0200, Blaisorblade wrote:
> > It's just because things are called under spinlocks and GFP_KERNEL is
> > used - but if possible, it'd be better to use something better than
> > GFP_ATOMIC (since this is performance critical).

> This would be ubd_io_lock, which is taken for us by the block layer before
> entering do_ubd_request.  We could make that a GFP_ATOMIC allocation,
> except that we have already dequeued the request, so would need to do
> something with it if the allocation failed.

> I'm wondering if we can drop the lock before do_io and pick it up
> afterwards.  The bitmap argument
the COW bitmap, right?
> is a global, which is a problem.  Two 
> racing requests could result in one writing out a bitmap which is
> either too old or too new.

> So, I'm not sure how to handle this.  We could requeue what's left of
> the request if an allocation failure happens.
Assuming it can be done, it'd be ok.

However, why have we already dequeued the request?

Looking for examples, via grep blkdev_dequeue_request drivers/ide/*.c and 
going opening drivers/ide/ide-io.c, I found blkdev_dequeue_request() called 
*after* end_that_request_first(), while there it's called before.

A comment in blk_start_pre_flush() says there's some freedom, but probably 
leaving the request in the queue would be ok....
> We could drop the lock 
> and pick it up later, but we have to be careful to write out the
> current bitmap, not one which we saved earlier or one which has been
> updated to reflect a racing request which is coming through later.
If you work on the second, be also sure to ask Jens Axboe (see MAINTAINERS for 
email) whether it's legal for the block layer.

CC'ing him on the change in first place would not have been a bad idea, either 
(IMHO).
> 				Jeff

-- 
Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!".
Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894)
http://www.user-mode-linux.org/~blaisorblade

		
___________________________________ 
Yahoo! Messenger: chiamate gratuite in tutto il mondo 
http://it.messenger.yahoo.com



-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

  reply	other threads:[~2005-09-14 20:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-09-13 18:01 [uml-devel] "Sleeping in atomic section" with ubd aio patch Blaisorblade
2005-09-14 19:22 ` [uml-devel] " Jeff Dike
2005-09-14 20:00   ` Blaisorblade [this message]
2005-09-14 21:18     ` Jeff Dike
2005-09-16 19:20       ` Blaisorblade

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=200509142200.39886.blaisorblade@yahoo.it \
    --to=blaisorblade@yahoo.it \
    --cc=jdike@addtoit.com \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox