Re: [RFC] Change locking in block_dev.c:do_open()

Ryan Cumming (bodnar42@phalynx.dhs.org)
Wed, 12 Dec 2001 17:01:43 -0800


On December 12, 2001 16:39, David C. Hansen wrote:
> Let's assume that the BKL is not held here, at least over the whole
> thing. First, what do we need to do to keep the module from getting
> unloaded after the request_module() in get_blkfops()?
>
> We can add a semaphore which must be acquired before a module can be
> unloaded, and hold it over the area where the module must not be
> unloaded. We could replace the unload_lock spinlock with a semaphore,
> which I'll call it unload_sem here. It would look something like this:

Why not use a read-write semaphore? The sections that require the module to
stay resident use a read lock, and module unloading aquires a write lock. In
addition to containing the evil, evil BKL, you might actually get a tangiable
scalability gain out of it.

-Ryan
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/