From patchwork Tue Jul 26 12:47:01 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Lezcano X-Patchwork-Id: 3138 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 55148241E0 for ; Tue, 26 Jul 2011 12:47:06 +0000 (UTC) Received: from mail-qw0-f52.google.com (mail-qw0-f52.google.com [209.85.216.52]) by fiordland.canonical.com (Postfix) with ESMTP id 24A8CA183AF for ; Tue, 26 Jul 2011 12:47:06 +0000 (UTC) Received: by mail-qw0-f52.google.com with SMTP id 8so243495qwb.11 for ; Tue, 26 Jul 2011 05:47:06 -0700 (PDT) Received: by 10.229.1.217 with SMTP id 25mr1981666qcg.38.1311684425886; Tue, 26 Jul 2011 05:47:05 -0700 (PDT) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.229.217.78 with SMTP id hl14cs110979qcb; Tue, 26 Jul 2011 05:47:05 -0700 (PDT) Received: by 10.216.239.73 with SMTP id b51mr4710346wer.63.1311684422674; Tue, 26 Jul 2011 05:47:02 -0700 (PDT) Received: from mtagate7.uk.ibm.com (mtagate7.uk.ibm.com [194.196.100.167]) by mx.google.com with ESMTPS id l37si825310weq.108.2011.07.26.05.47.02 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jul 2011 05:47:02 -0700 (PDT) Received-SPF: neutral (google.com: 194.196.100.167 is neither permitted nor denied by best guess record for domain of daniel.lezcano@linaro.org) client-ip=194.196.100.167; Authentication-Results: mx.google.com; spf=neutral (google.com: 194.196.100.167 is neither permitted nor denied by best guess record for domain of daniel.lezcano@linaro.org) smtp.mail=daniel.lezcano@linaro.org Received: from d06nrmr1806.portsmouth.uk.ibm.com (d06nrmr1806.portsmouth.uk.ibm.com [9.149.39.193]) by mtagate7.uk.ibm.com (8.13.1/8.13.1) with ESMTP id p6QCl1Oo003338; Tue, 26 Jul 2011 12:47:01 GMT Received: from d06av04.portsmouth.uk.ibm.com (d06av04.portsmouth.uk.ibm.com [9.149.37.216]) by d06nrmr1806.portsmouth.uk.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6QCl1Qq2162796; Tue, 26 Jul 2011 13:47:01 +0100 Received: from d06av04.portsmouth.uk.ibm.com (loopback [127.0.0.1]) by d06av04.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6QCl1WA022519; Tue, 26 Jul 2011 06:47:01 -0600 Received: from smtp.lab.toulouse-stg.fr.ibm.com (srv01.lab.toulouse-stg.fr.ibm.com [9.101.4.1]) by d06av04.portsmouth.uk.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6QCl02W022456; Tue, 26 Jul 2011 06:47:01 -0600 Received: from mai.lab.toulouse-stg.fr.ibm.com (dhcp7.lab.toulouse-stg.fr.ibm.com [9.101.4.207]) by smtp.lab.toulouse-stg.fr.ibm.com (Postfix) with ESMTP id 3DD53210FBB; Tue, 26 Jul 2011 14:47:01 +0200 (CEST) From: Daniel Lezcano To: linaro-dev@lists.linaro.org Cc: amit.kucheria@linaro.org Subject: [pm-qa 11/14] add a cpu burn utility Date: Tue, 26 Jul 2011 14:47:01 +0200 Message-Id: <1311684424-8057-12-git-send-email-daniel.lezcano@linaro.org> X-Mailer: git-send-email 1.7.4.1 In-Reply-To: <1311684424-8057-1-git-send-email-daniel.lezcano@linaro.org> References: <1311684424-8057-1-git-send-email-daniel.lezcano@linaro.org> A very simple program, similar to cpucycle, but doing nothing more than looping indefinitively. Signed-off-by: Daniel Lezcano --- utils/cpuburn.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-) create mode 100644 utils/cpuburn.c diff --git a/utils/cpuburn.c b/utils/cpuburn.c new file mode 100644 index 0000000..12e82c0 --- /dev/null +++ b/utils/cpuburn.c @@ -0,0 +1,91 @@ +/******************************************************************************* + * PM-QA validation test suite for the power management on ARM + * + * Copyright (C) 2011, Linaro Limited. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * Contributors: + * Daniel Lezcano (IBM Corporation) + * - initial API and implementation + * + *******************************************************************************/ + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char *argv[]) +{ + regex_t reg; + const char *regex = "cpu[0-9].*"; + char **aargv = NULL; + regmatch_t m[1]; + cpu_set_t cpuset; + int i; + + if (argc == 1) { + fprintf(stderr, "%s [cpuM] ... \n", argv[0]); + return 1; + } + + aargv = &argv[1]; + + if (regcomp(®, regex, 0)) { + fprintf(stderr, "failed to compile the regex\n"); + return 1; + } + + CPU_ZERO(&cpuset); + + for (i = 0; i < (argc - 1); i++) { + + char *aux; + int cpu; + + if (regexec(®, aargv[i], 1, m, 0)) { + fprintf(stderr, "'%s' parameter not recognized, " \ + "should be cpu[0-9]\n", aargv[i]); + return 1; + } + + aux = aargv[i] + 3; + cpu = atoi(aux); + + CPU_SET(cpu, &cpuset); + } + + if (sched_setaffinity(0, sizeof(cpuset), &cpuset)) { + perror("sched_setaffinity"); + return 1; + } + + if (setpriority(PRIO_PROCESS, 0, -20) < 0) { + perror("setpriority"); + return 1; + } + + for (;;); + + return 0; +}