Re: [LSF/MM/BPF TOPIC] Replacing TASK_(UN)INTERRUPTIBLE with regions of uninterruptibility

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2 Feb 2024 at 11:30, David Howells <dhowells@xxxxxxxxxx> wrote:
>
> Miklos Szeredi <miklos@xxxxxxxxxx> wrote:
>
> > > We have various locks, mutexes, etc., that are taken on entry to
> > > filesystem code, for example, and a bunch of them are taken interruptibly
> > > or killably (or ought to be) - but filesystem code might be called into
> > > from uninterruptible code, such as the memory allocator, fscache, etc..
> >
> > Are you suggesting to make lots more filesystem/vfs/mm sleeps
> > killable?  That would present problems with being called from certain
> > contexts.
>
> No, it wouldn't.  What I'm suggesting is something like:
>
>         overlayfs_mkdir(inode)
>         {
>                 inode_lock(inode);  <---  This could be interruptible

Just making inode_lock() interruptible would break everything.

So I assume this is not what you meant, but that we add error handling
to each and every inode_lock() call?

>                 ...
>                 begin_task_uninterruptible();

Yes, I understand that this is your suggestion.

For overlayfs it doesn't really make sense, but for network fs and
fuse I guess it could be interesting.  I would have thought that
making all fs related sleeping locks interruptible is not something
that would be worth the effort, but maybe you have a very good use
case.

Thanks,
Miklos




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux