[lkml]   [2007]   [Aug]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 0/24] make atomic_read() behave consistently across all architectures
    Herbert Xu wrote:
    > On Thu, Aug 16, 2007 at 10:06:31AM +0200, Stefan Richter wrote:
    >> >
    >> > Do you (or anyone else for that matter) have an example of this?
    >> The only code I somewhat know, the ieee1394 subsystem, was perhaps
    >> authored and is currently maintained with the expectation that each
    >> occurrence of atomic_read actually results in a load operation, i.e. is
    >> not optimized away. This means all atomic_t (bus generation, packet and
    >> buffer refcounts, and some other state variables)* and likewise all
    >> atomic bitops in that subsystem.
    > Can you find an actual atomic_read code snippet there that is
    > broken without the volatile modifier?

    What do I have to look for? atomic_read after another read or write
    access to the same variable, in the same function scope? Or in the sum
    of scopes of functions that could be merged by function inlining?

    One example was discussed here earlier: The for (;;) loop in
    nodemgr_host_thread. There an msleep_interruptible implicitly acted as
    barrier (at the moment because it's in a different translation unit; if
    it were the same, then because it hopefully has own barriers). So that
    happens to work, although such an implicit barrier is bad style: Better
    enforce the desired behaviour (== guaranteed load operation) *explicitly*.
    Stefan Richter
    -=====-=-=== =--- =----
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-08-16 11:57    [W:0.023 / U:12.716 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site