Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Oct 2004 11:11:13 -0500 (EST)
From:      Sam <sah@softcardsystems.com>
To:        freebsd-current@freebsd.org, freebsd-arch@freebsd.org
Subject:   6.0 Witness squawk
Message-ID:  <Pine.LNX.4.60.0410251037540.29901@athena>

index | next in thread | raw e-mail

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?

Cheers,

Sam


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.60.0410251037540.29901>