Christoph Lameter <[EMAIL PROTECTED]> wrote:
>
> This patch extracts all the operations on counters protected by the
> page table lock (currently rss and anon_rss) into definitions in
> include/linux/sched.h. All rss operations are performed through
> the following macros:
>
> get_mm_counter(mm, member)            -> Obtain the value of a counter
> set_mm_counter(mm, member, value)     -> Set the value of a counter
> update_mm_counter(mm, member, value)  -> Add to a counter
> inc_mm_counter(mm, member)            -> Increment a counter
> dec_mm_counter(mm, member)            -> Decrement a counter

I spose it makes sense, if we'll be making scalability changes in there.

> 
> +#define set_mm_counter(mm, member, value) (mm)->member = (value)
> +#define get_mm_counter(mm, member) ((mm)->member)
> +#define update_mm_counter(mm, member, value) (mm)->member += (value)
> +#define inc_mm_counter(mm, member) (mm)->member++
> +#define dec_mm_counter(mm, member) (mm)->member--
> +#define MM_COUNTER_T unsigned long

Would prefer `mm_counter_t' here.

Why not a typedef?

> @@ -231,9 +237,13 @@ struct mm_struct {
>       unsigned long start_code, end_code, start_data, end_data;
>       unsigned long start_brk, brk, start_stack;
>       unsigned long arg_start, arg_end, env_start, env_end;
> -     unsigned long rss, anon_rss, total_vm, locked_vm, shared_vm;
> +     unsigned long total_vm, locked_vm, shared_vm;
>       unsigned long exec_vm, stack_vm, reserved_vm, def_flags, nr_ptes;
> 
> +     /* Special counters protected by the page_table_lock */
> +     MM_COUNTER_T rss;
> +     MM_COUNTER_T anon_rss;
> +

Why were only two counters converted?

Could I suggest that you rename all these counters, so that code which
fails to use the macros won't compile?

That renaming can be hidden in the header file: add an underscore to the
front of all the identifiers, paste that underscore back within the macros.

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

Reply via email to