[Bug 264383] SMP: Miss access to a global variable in `smp_rendezvous_action` function.

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 01 Jun 2022 02:43:46 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264383

            Bug ID: 264383
           Summary: SMP: Miss access to a global variable in
                    `smp_rendezvous_action` function.
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: naito.yuichiro@gmail.com

Created attachment 234367
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=234367&action=edit
smp_rendezvous_action.patch

I'm studying `smp_rendezvous` code now.
It's a cool feature in the kernel and surprising how long history it has.

It seems that arguments of `smp_rendezvous_action` is loaded in local variables
as soon as `smp_rendezvous_action` takes a barrier.
And the code design seems to use local variables in the barrier.

But I think only two lines violate to the design policy
and should be fixed as attached `smp_rendezvous_action.patch`.

I believe there is no issues about this.
`smp_rendezvous` works fine for a long time.

I think local variable access is a little bit faster than global variable
access.
Because the global variables are defined as `volatile`.

-- 
You are receiving this mail because:
You are the assignee for the bug.