[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex
From: |
Kevin Wolf |
Subject: |
Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex |
Date: |
Mon, 19 Jul 2021 16:54:21 +0200 |
Am 19.07.2021 um 11:29 hat Stefan Hajnoczi geschrieben:
> On Fri, Jul 16, 2021 at 05:23:50PM +0200, Kevin Wolf wrote:
> > Am 13.07.2021 um 15:10 hat Stefan Hajnoczi geschrieben:
> > > AIO_WAIT_WHILE() requires that AioContext is acquired according to its
> > > documentation, but I'm not sure that's true anymore. Thread-safe/atomic
> > > primitives are used by AIO_WAIT_WHILE(), so as long as the condition
> > > being waited for is thread-safe too it should work without the
> > > AioContext lock.
> >
> > Polling something in a different AioContext from the main thread still
> > temporarily drops the lock, which crashes if it isn't locked. I'm not
> > sure if the documentation claims that the lock is needed in more cases,
> > I guess you could interpret it either way.
>
> I'm claiming that the lock doesn't need to be dropped in that case
> anymore - as long as the condition we're polling is thread-safe. :)
>
> Have I missed something that still need locking?
I'm not sure if AIO_WAIT_WHILE() actually ever needed the locking. I
think it's more a convenience thing since the callers would already hold
the lock, so dropping it temporarily in AIO_WAIT_WHILE() means that the
callers don't have to duplicate the temporary unlock everywhere.
> We could temporarily introduce an AIO_WAIT_WHILE_UNLOCKED() macro so
> that callers can be converted individually.
Yes, this makes sense to me.
Kevin
signature.asc
Description: PGP signature
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, (continued)
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Kevin Wolf, 2021/07/08
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Stefan Hajnoczi, 2021/07/08
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Emanuele Giuseppe Esposito, 2021/07/12
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Stefan Hajnoczi, 2021/07/13
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Vladimir Sementsov-Ogievskiy, 2021/07/13
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Stefan Hajnoczi, 2021/07/13
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Vladimir Sementsov-Ogievskiy, 2021/07/15
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Stefan Hajnoczi, 2021/07/15
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Kevin Wolf, 2021/07/16
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Stefan Hajnoczi, 2021/07/19
- Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex,
Kevin Wolf <=
Re: [RFC PATCH 0/6] job: replace AioContext lock with job_mutex, Stefan Hajnoczi, 2021/07/08