From: Anton Vorontsov <anton.vorontsov@linaro.org>
To: Pekka Enberg <penberg@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linaro-kernel@lists.linaro.org, patches@linaro.org
Subject: Re: [PATCH 2/3] vmevent: Factor vmevent_match_attr() out of vmevent_match()
Date: Fri, 12 Oct 2012 15:21:42 -0700 [thread overview]
Message-ID: <20121012222141.GA15629@lizard> (raw)
In-Reply-To: <CAOJsxLFW3WbBDdFhuJDwUxvGVfsy_Tg8SpR4pxTWAcfQ+LG0UQ@mail.gmail.com>
On Fri, Oct 12, 2012 at 03:37:43PM +0300, Pekka Enberg wrote:
[...]
> > +static bool vmevent_match_attr(struct vmevent_attr *attr, u64 value)
> > +{
> > + u32 state = attr->state;
> > + bool attr_lt = state & VMEVENT_ATTR_STATE_VALUE_LT;
> > + bool attr_gt = state & VMEVENT_ATTR_STATE_VALUE_GT;
> > + bool attr_eq = state & VMEVENT_ATTR_STATE_VALUE_EQ;
> > + bool edge = state & VMEVENT_ATTR_STATE_EDGE_TRIGGER;
> > + u32 was_lt_mask = VMEVENT_ATTR_STATE_VALUE_WAS_LT;
> > + u32 was_gt_mask = VMEVENT_ATTR_STATE_VALUE_WAS_GT;
> > + bool lt = value < attr->value;
> > + bool gt = value > attr->value;
> > + bool eq = value == attr->value;
> > + bool was_lt = state & was_lt_mask;
> > + bool was_gt = state & was_gt_mask;
>
> [snip]
>
> So I merged this patch but vmevent_match_attr() is still too ugly for
> words. It really could use some serious cleanups.
Thanks a lot for merging these cleanups!
Yes, the patch wasn't meant to simplify the matching logic, but just to
let us use the function in other places.
I once started converting the function into table-based approach, but the
code started growing, and I abandoned the idea for now. I might resume the
work just for the fun of it, but the code will be larger than this ad-hoc
function, althouh surely it will be more generic and understandable.
But let's solve primary problems with the vmevent first. :-)
Thanks,
Anton.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
WARNING: multiple messages have this Message-ID (diff)
From: Anton Vorontsov <anton.vorontsov@linaro.org>
To: Pekka Enberg <penberg@kernel.org>
Cc: John Stultz <john.stultz@linaro.org>,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
linaro-kernel@lists.linaro.org, patches@linaro.org
Subject: Re: [PATCH 2/3] vmevent: Factor vmevent_match_attr() out of vmevent_match()
Date: Fri, 12 Oct 2012 15:21:42 -0700 [thread overview]
Message-ID: <20121012222141.GA15629@lizard> (raw)
In-Reply-To: <CAOJsxLFW3WbBDdFhuJDwUxvGVfsy_Tg8SpR4pxTWAcfQ+LG0UQ@mail.gmail.com>
On Fri, Oct 12, 2012 at 03:37:43PM +0300, Pekka Enberg wrote:
[...]
> > +static bool vmevent_match_attr(struct vmevent_attr *attr, u64 value)
> > +{
> > + u32 state = attr->state;
> > + bool attr_lt = state & VMEVENT_ATTR_STATE_VALUE_LT;
> > + bool attr_gt = state & VMEVENT_ATTR_STATE_VALUE_GT;
> > + bool attr_eq = state & VMEVENT_ATTR_STATE_VALUE_EQ;
> > + bool edge = state & VMEVENT_ATTR_STATE_EDGE_TRIGGER;
> > + u32 was_lt_mask = VMEVENT_ATTR_STATE_VALUE_WAS_LT;
> > + u32 was_gt_mask = VMEVENT_ATTR_STATE_VALUE_WAS_GT;
> > + bool lt = value < attr->value;
> > + bool gt = value > attr->value;
> > + bool eq = value == attr->value;
> > + bool was_lt = state & was_lt_mask;
> > + bool was_gt = state & was_gt_mask;
>
> [snip]
>
> So I merged this patch but vmevent_match_attr() is still too ugly for
> words. It really could use some serious cleanups.
Thanks a lot for merging these cleanups!
Yes, the patch wasn't meant to simplify the matching logic, but just to
let us use the function in other places.
I once started converting the function into table-based approach, but the
code started growing, and I abandoned the idea for now. I might resume the
work just for the fun of it, but the code will be larger than this ad-hoc
function, althouh surely it will be more generic and understandable.
But let's solve primary problems with the vmevent first. :-)
Thanks,
Anton.
next prev parent reply other threads:[~2012-10-12 22:24 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-04 10:20 [PATCH 0/3] A few cleanups and refactorings, sync w/ upstream Anton Vorontsov
2012-10-04 10:20 ` Anton Vorontsov
2012-10-04 10:21 ` [PATCH 1/3] vmevent: Remove unused code Anton Vorontsov
2012-10-04 10:21 ` Anton Vorontsov
2012-10-04 10:21 ` [PATCH 2/3] vmevent: Factor vmevent_match_attr() out of vmevent_match() Anton Vorontsov
2012-10-04 10:21 ` Anton Vorontsov
2012-10-12 12:37 ` Pekka Enberg
2012-10-12 12:37 ` Pekka Enberg
2012-10-12 22:21 ` Anton Vorontsov [this message]
2012-10-12 22:21 ` Anton Vorontsov
2012-10-04 10:21 ` [PATCH 3/3] vmevent: Don't sample values twice Anton Vorontsov
2012-10-04 10:21 ` Anton Vorontsov
2012-10-12 12:12 ` [PATCH 0/3] A few cleanups and refactorings, sync w/ upstream Pekka Enberg
2012-10-12 12:12 ` Pekka Enberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121012222141.GA15629@lizard \
--to=anton.vorontsov@linaro.org \
--cc=john.stultz@linaro.org \
--cc=linaro-kernel@lists.linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=patches@linaro.org \
--cc=penberg@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.