From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1422669AbbA3Ntf (ORCPT ); Fri, 30 Jan 2015 08:49:35 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45292 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964913AbbA3Ntc (ORCPT ); Fri, 30 Jan 2015 08:49:32 -0500 Date: Fri, 30 Jan 2015 14:49:22 +0100 From: Jiri Olsa To: Namhyung Kim Cc: Arnaldo Carvalho de Melo , Ingo Molnar , Peter Zijlstra , LKML Subject: Re: [PATCH 1/3] perf test: Fix dso cache testcase Message-ID: <20150130134922.GB6188@krava.brq.redhat.com> References: <1422585209-32742-1-git-send-email-namhyung@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1422585209-32742-1-git-send-email-namhyung@kernel.org> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jan 30, 2015 at 11:33:27AM +0900, Namhyung Kim wrote: > The current dso cache permits to keep dso->data.fd is open under a > half of open file limit. But test__dso_data_cache() sets dso_cnt to > limit / 2 + 1 so it'll reach the limit in the loop even though the > loop count is one less than the dso_cnt and it makes the final > dso__data_fd() after the loop meaningless. > > I guess the intention was dsos[0]->data.fd is open before the last > open and gets closed after it. So add an assert before the last open. > > Signed-off-by: Namhyung Kim Acked-by: Jiri Olsa thanks, jirka > --- > tools/perf/tests/dso-data.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/tools/perf/tests/dso-data.c b/tools/perf/tests/dso-data.c > index caaf37f079b1..22a8c428283a 100644 > --- a/tools/perf/tests/dso-data.c > +++ b/tools/perf/tests/dso-data.c > @@ -243,8 +243,8 @@ int test__dso_data_cache(void) > limit = nr * 4; > TEST_ASSERT_VAL("failed to set file limit", !set_fd_limit(limit)); > > - /* and this is now our dso open FDs limit + 1 extra */ > - dso_cnt = limit / 2 + 1; > + /* and this is now our dso open FDs limit */ > + dso_cnt = limit / 2; > TEST_ASSERT_VAL("failed to create dsos\n", > !dsos__create(dso_cnt, TEST_FILE_SIZE)); > > @@ -268,7 +268,10 @@ int test__dso_data_cache(void) > } > } > > - /* open +1 dso over the allowed limit */ > + /* verify the first one is already open */ > + TEST_ASSERT_VAL("dsos[0] is not open", dsos[0]->data.fd != -1); > + > + /* open +1 dso to reach the allowed limit */ > fd = dso__data_fd(dsos[i], &machine); > TEST_ASSERT_VAL("failed to get fd", fd > 0); > > -- > 2.2.2 >