lockless_dereference() in perfbook

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

 



Hi Paul,

As LKMM dropped lockless_dereference() when it was merged in v4.17,
CodeSamples/formal/litmus/C-MP+o-wmb-o+ld-addr-o.litmus fails to
be evaluated by "make run-herd7" under CodeSamples/formal/herd.

lockless_dereference() is still covered by CodeSamples/formal/litmus/api.h
and klitmus7, so the test can be evaluated by litmus7 and "klitmus7 at the
moment.

In commit 48ec12dac0c3 ("memorder: Update based on v4.15 Linux kernel
de-Alpha-ication"), you added a footnote in Section 15.2.3 saying:

    Note that lockless_dereference() is not needed on v4.15 and later,
    and therefore is not available in these later Linux kernels.

There remain several lockless_dereference()s in perfbook without any
updates.

In the Answer to Quick Quiz 15.15, lockless_dereference() is mentioned
several times.

Quick Quiz 15.17 says:

    Why doesn't line 18 of Listing 15.12 need a lockless_dereference()?

Leading paragraph of Section 15.3.2.1 says:

    The load that heads your dependency chain must use proper ordering,
    for example, lockless_dereference(), rcu_dereference(), or a READ_ONCE()
    followed by smp_read_barrier_depends().

In the middle of Section 15.5, there is a sentence:

    Note also that a dependency leading to a load must be headed by a
    lockless_dereference() or an rcu_dereference(): READ_ONCE() is not
    sufficient.

Could you look into them?

One problem in regard to litmus tests might be that there is no means
to indicate plain accesses with no memory barrier in current LKMM.
At the moment, C-MP+o-wmb-o+o-addr-o.litmus behaves identically as
C-MP+o-wmb-o+ld-addr-o.litmus would do.

        Thanks, Akira



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux