Re: 6.0 Witness squawk

From: Brian Fundakowski Feldman (green_at_freebsd.org)
Date: 10/25/04

  • Next message: Sam: "Re: 6.0 Witness squawk"
    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-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
    

  • Next message: Sam: "Re: 6.0 Witness squawk"

    Relevant Pages

    • 6.0 Witness squawk
      ... I'm almost finished porting my AoE ... driver to 6.0 and have a question about a complaint witness ... is it ok to sleep with a mutex held? ... it works like this in the driver. ...
      (freebsd-arch)
    • 6.0 Witness squawk
      ... I'm almost finished porting my AoE ... driver to 6.0 and have a question about a complaint witness ... is it ok to sleep with a mutex held? ... it works like this in the driver. ...
      (freebsd-current)
    • Re: 6.0 Witness squawk
      ... >> I'm almost finished porting my AoE ... is it ok to sleep with a mutex held? ... it works like this in the driver. ...
      (freebsd-arch)
    • Re: 6.0 Witness squawk
      ... >> I'm almost finished porting my AoE ... is it ok to sleep with a mutex held? ... it works like this in the driver. ...
      (freebsd-current)
    • Re: 6.0 Witness squawk
      ... > I'm almost finished porting my AoE ... > driver to 6.0 and have a question about a complaint witness ... is it ok to sleep with a mutex held? ...
      (freebsd-arch)