[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <201107231150.31055.arnd@arndb.de>
Date: Sat, 23 Jul 2011 11:50:30 +0200
From: Arnd Bergmann <arnd@...db.de>
To: Mark Brown <broonie@...nsource.wolfsonmicro.com>
Cc: Shawn Guo <shawn.guo@...escale.com>,
ashishj3 <ashish.jangam@...tcummins.com>,
Dajun <dajun.chen@...semi.com>, sameo@...nedhand.com,
linaro-dev@...ts.linaro.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 01/11] MFD: DA9052 MFD core module v2
On Friday 22 July 2011, Mark Brown wrote:
> We went round this analysis already with the underlying I2C drivers
> (which also end up needing to take mutexes and so on) - it really does
> work out better to just make the I/O noninterruptible, the I/O is fast
> enough to not really be worth interrupting and the handling for actual
> I/O errors should normally be sufficiently different to that for user
> initiated aborts that it just adds complication.
>
> For example, if the user interrupts while we're in the middle of some
> lengthy series of operations or wait what we really want to do is to
> tear down the high level thing we're doing in an orderly fashion. If
> we allow the interrupt to be noticed as part of an I/O operation then
> what we often end up doing is failing that and we then have to work out
> why the I/O failed, if actually happened on a physical level and how we
> deal with that. Usually none of these paths will be well tested.
>
> The overall result is that the system generally becomes more complicated
> and less robust.
Yes, that makes sense. There are also cases where a mutex should really
be a spinlock (which is by definition not interruptible), or vice
versa. I don't know if this is one of them.
I agree that the safest solution here is to just make the mutex
uninterruptible.
Arnd
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists