Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Sep 2022 16:26:16 +0200
From:      Mateusz Guzik <mjguzik@gmail.com>
To:        Konstantin Belousov <kostikbel@gmail.com>
Cc:        freebsd-current@freebsd.org
Subject:   Re: kernel-side thread stack swapping
Message-ID:  <CAGudoHG4urOa7mf2r0hXqGrc-tpsr8bF7PQS10gSYMpz1hU3Tw@mail.gmail.com>
In-Reply-To: <YxIQYCb3CsBtv9Gf@kib.kiev.ua>
References:  <CAGudoHFh5H721kcQT0zDdErD%2Bj%2B0YA6Hz=%2Bjarg9R1jdttfx-A@mail.gmail.com> <YxINyjnFDt8kU41j@kib.kiev.ua> <CAGudoHGbomDGPNsYa_RHGS7NkWU4iOBHnxr9bCnvfn8BYMjEJQ@mail.gmail.com> <YxIQYCb3CsBtv9Gf@kib.kiev.ua>

next in thread | previous in thread | raw e-mail | index | archive | help
On 9/2/22, Konstantin Belousov <kostikbel@gmail.com> wrote:
> On Fri, Sep 02, 2022 at 04:11:40PM +0200, Mateusz Guzik wrote:
>> On 9/2/22, Konstantin Belousov <kostikbel@gmail.com> wrote:
>> > On Fri, Sep 02, 2022 at 02:05:37PM +0200, Mateusz Guzik wrote:
>> >> Is this really of practical use today?
>> >>
>> >> I have a WIP patch which needs to temporarily store something on the
>> >> stack and should things go wrong enough it will be accessed by UMA,
>> >> which can't handle the fault nor decide to skip the access.
>> >>
>> >> I can add something like td_pinstack or whatever to keep it around,
>> >> but perhaps the entire machinery can be just whacked?
>> > p_hold already does that.
>> >
>>
>> I only need to protect the one stack and more importantly don't want
>> to take the proc lock to bump p_hold (nor convert it to atomics), it's
>> all thread-local so to speak.
>
> You do not want to take proc lock, or cannot?  Note that only sleeping
> thread' stack can be swapped out.
>

To add some context here I'm looking at reworking vnode batching in
vdrop -> vdbatch_enqueue to remove vnode interlock -> vdbatch lock ->
vnode list lock dependency (and improve scalability of the thing).

Adding a proc lock here would negatively affect performance for
everyone *and* weirdly serialize same-proc consumers.

-- 
Mateusz Guzik <mjguzik gmail.com>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGudoHG4urOa7mf2r0hXqGrc-tpsr8bF7PQS10gSYMpz1hU3Tw>