All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
To: Adrian Hunter <adrian.hunter@intel.com>
Cc: linux-kernel@vger.kernel.org, dsahern@gmail.com,
	jolsa@redhat.com, namhyung@kernel.org, acme@ghostprotocols.net,
	mingo@redhat.com
Subject: Re: [PATCH] perf util: Join four conditions in two in perf_evlist__create_maps().
Date: Wed, 27 Nov 2013 19:36:31 -0500	[thread overview]
Message-ID: <5296900F.8010209@cn.fujitsu.com> (raw)
In-Reply-To: <5295CE48.4090501@intel.com>

On 11/27/2013 05:49 AM, Adrian Hunter wrote:
> On 28/11/13 00:52, Dongsheng Yang wrote:
>> On 11/27/2013 04:43 AM, Adrian Hunter wrote:
>>> On 28/11/13 00:23, Dongsheng Yang wrote:
>>>> There are four condition branchs in perf_evlist__create_maps, but they
>>>> only do two kinds of thing. 1st and 4th call cpu_map__new(), and the others
>>>> call cpu_map__dummy_new(). This patch joins them in two branchs, decreasing
>>>> the number of branch and removing some duplicated code.
>>> That code has changed again.  See:
>>>
>>>      http://git.kernel.org/cgit/linux/kernel/git/acme/linux.git/log/?h=perf/core
>>>
>>>
>> Hi Adrian!
>>      Thanx for your reminding. Yes, a more checking is added into the 1st
>> branch.
>> And I think we still can join them in two conditions.
>>
>> Do you think this idea is ok to you? If so, I will update my patch base on
>> the latest code.
> Personally I like code that is easy to read, and I don't think
> combining the conditions does that.  But you could set a bool
> and use that to decide what to call.
>

How about add a function in target.c named 
perf_target__uses_dummy_map(), and this
function take over the all checking to decide which to call. Then we can 
use it here like:

if (perf_target__uses_dummy_map(target)):
     evlist->cpus = cpu_map__dummy_new();
else:
     evlist->cpus = cpu_map__new(target->cpu_list);
>> Yang
>>>> Signed-off-by: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>
>>>> ---
>>>>    tools/perf/util/evlist.c | 8 +++-----
>>>>    1 file changed, 3 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c
>>>> index bbc746a..2258eb4 100644
>>>> --- a/tools/perf/util/evlist.c
>>>> +++ b/tools/perf/util/evlist.c
>>>> @@ -819,11 +819,9 @@ int perf_evlist__create_maps(struct perf_evlist
>>>> *evlist, struct target *target)
>>>>        if (evlist->threads == NULL)
>>>>            return -1;
>>>>    -    if (target->force_per_cpu)
>>>> -        evlist->cpus = cpu_map__new(target->cpu_list);
>>>> -    else if (target__has_task(target))
>>>> -        evlist->cpus = cpu_map__dummy_new();
>>>> -    else if (!target__has_cpu(target) && !target->uses_mmap)
>>>> +    if (!target->force_per_cpu &&
>>>> +        (target__has_task(target) ||
>>>> +         (!target__has_cpu(target) && !target->uses_mmap)))
>>>>            evlist->cpus = cpu_map__dummy_new();
>>>>        else
>>>>            evlist->cpus = cpu_map__new(target->cpu_list);
>>>>
>>
>>
> --
> 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/
>


      reply	other threads:[~2013-11-27 11:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-27 22:23 [PATCH] perf util: Join four conditions in two in perf_evlist__create_maps() Dongsheng Yang
2013-11-27  9:43 ` Adrian Hunter
2013-11-27 22:52   ` Dongsheng Yang
2013-11-27 10:49     ` Adrian Hunter
2013-11-28  0:36       ` Dongsheng Yang [this message]

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=5296900F.8010209@cn.fujitsu.com \
    --to=yangds.fnst@cn.fujitsu.com \
    --cc=acme@ghostprotocols.net \
    --cc=adrian.hunter@intel.com \
    --cc=dsahern@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=namhyung@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.