lkml.org 
[lkml]   [2010]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 03/10] Use percpu stats
    From
    On Mon, Aug 30, 2010 at 12:20 PM, Christoph Lameter <cl@linux.com> wrote:
    > On Mon, 9 Aug 2010, Nitin Gupta wrote:
    >
    >> -static void zram_stat_inc(u32 *v)
    >> +static void zram_add_stat(struct zram *zram,
    >> +                     enum zram_stats_index idx, s64 val)
    >>  {
    >> -     *v = *v + 1;
    >> +     struct zram_stats_cpu *stats;
    >> +
    >> +     preempt_disable();
    >> +     stats = __this_cpu_ptr(zram->stats);
    >> +     u64_stats_update_begin(&stats->syncp);
    >> +     stats->count[idx] += val;
    >> +     u64_stats_update_end(&stats->syncp);
    >> +     preempt_enable();
    >
    > Maybe do
    >
    > #define zram_add_stat(zram, index, val)
    >                this_cpu_add(zram->stats->count[index], val)
    >
    > instead? It creates an add in a single "atomic" per cpu instruction and
    > deals with the fallback scenarios for processors that cannot handle 64
    > bit adds.
    >
    >

    Yes, this_cpu_add() seems sufficient. I can't recall why I used u64_stats_*
    but if it's not required for atomic access to 64-bit then why was it added to
    the mainline in the first place?

    Thanks,
    Nitin
    --
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2010-08-31 22:33    [W:0.022 / U:1.088 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site