Re: [PATCH] Profile likely/unlikely macros

From: Andrew Morton
Date: Mon Apr 24 2006 - 23:08:17 EST


Daniel Walker <dwalker@xxxxxxxxxx> wrote:
>
> + if (likeliness->type & LIKELY_UNSEEN) {
> + if (atomic_dec_and_test(&likely_lock)) {
> + if (likeliness->type & LIKELY_UNSEEN) {
> + likeliness->type &= (~LIKELY_UNSEEN);
> + likeliness->next = likeliness_head;
> + likeliness_head = likeliness;
> + }
> + }
> + atomic_inc(&likely_lock);

hm, good enough I guess. It does need a comment explaining why we
don't just do spin_lock().

It'd be a bit saner to do

if (!test_and_set_bit(&foo, 0)) {
...
clear_bit(&foo, 0);
}

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