Re: 6.0 Witness squawk
From: Brian Fundakowski Feldman (green_at_freebsd.org)
Date: 10/25/04
- Previous message: Sam: "6.0 Witness squawk"
- In reply to: Sam: "6.0 Witness squawk"
- Next in thread: Sam: "Re: 6.0 Witness squawk"
- Reply: Sam: "Re: 6.0 Witness squawk"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Mon, 25 Oct 2004 11:26:15 -0400 To: Sam <sah@softcardsystems.com>
On Mon, Oct 25, 2004 at 11:11:13AM -0500, Sam wrote:
> Hello,
>
> I'm almost finished porting my AoE (ATA over Ethernet)
> driver to 6.0 and have a question about a complaint witness
> is making.
>
> In general, is it ok to sleep with a mutex held?
>
> Specifically, it works like this in the driver.
> Each device struct has a mutex for guarding
> operations on it. Discovering devices is a two
> step process. First the device must respond to
> an AoE Query command, then it must respond to
> an ATA identify command. On the response to
> the latter, I grab the device mutex, examine
> the response and call disk_alloc() and disk_create().
>
> Both of these functions call malloc with M_WAITOK,
> the latter triggers the witness message.
>
> In my situation, I don't really mind if I sleep
> with the mutex since I can't do any useful work
> with the device anyway.
>
> This does leave the possibility that the netisr
> for AoE could sleep.
>
> Thoughts?
If you can't do any useful work, why do you have the mutex? Leave
the mutex operations for when exclusivity _is_necessary_, after the
major parts of initialization. No, it's not okay to sleep with a
mutex held -- it must be dropped a la msleep/cv/whatever.
-- Brian Fundakowski Feldman \'[ FreeBSD ]''''''''''\ <> green@FreeBSD.org \ The Power to Serve! \ Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\ _______________________________________________ freebsd-arch@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-arch To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
- Previous message: Sam: "6.0 Witness squawk"
- In reply to: Sam: "6.0 Witness squawk"
- Next in thread: Sam: "Re: 6.0 Witness squawk"
- Reply: Sam: "Re: 6.0 Witness squawk"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|
|