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>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.60.0410251037540.29901>