lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20091202191253.GH31715@redhat.com>
Date:	Wed, 2 Dec 2009 14:12:53 -0500
From:	Vivek Goyal <vgoyal@...hat.com>
To:	"Alan D. Brunelle" <Alan.Brunelle@...com>
Cc:	Corrado Zoccolo <czoccolo@...il.com>, linux-kernel@...r.kernel.org,
	jens.axboe@...cle.com, nauman@...gle.com, dpshah@...gle.com,
	lizf@...fujitsu.com, ryov@...inux.co.jp, fernando@....ntt.co.jp,
	s-uchida@...jp.nec.com, taka@...inux.co.jp,
	guijianfeng@...fujitsu.com, jmoyer@...hat.com,
	righi.andrea@...il.com, m-ikeda@...jp.nec.com
Subject: Re: Block IO Controller V4

On Mon, Nov 30, 2009 at 06:50:25PM -0500, Alan D. Brunelle wrote:
> On Mon, 2009-11-30 at 17:56 -0500, Vivek Goyal wrote:
> > On Mon, Nov 30, 2009 at 05:00:33PM -0500, Alan D. Brunelle wrote:
> > > FYI: Results today from my test suite - haven't had time to parse them
> > > in any depth...
> > 
> > Thanks Alan. I am trying to parse the results below. s0 and s8 still mean
> > slice idle enabled disabled? Instead of that we can try group_isolation
> > enabled or disabled for all the tests.
> 
> I'm concerned as well - I think I did the base run /after/ the i1,s0
> run. I'll need to check that out tomorrow...
> 

Hi Alan, Gui,

Currently fio does not have support for putting jobs in appropriate
cgroups. Hence I wrote the scripts to move jobs in to right cgroup. But
this had the issue of synchronization between threads so that they all
start at same time after laying out the files. I had written some programs
to synchronize on external semaphore. This was getting complicated.

Now I have written this small hacky patch to modify fio to launch a job
in specified cgroup. Just use following in your job file or command line.

cgroup=<cgroup dir path>

In my initial testing it seems to be working both from command line and
from job file. I will test it more. Sending the patch in this thread because
you and Gui seems to be testing this stuff and life will become little easier.

Thanks
Vivek


o A simple patch to put run a fio job in a specific cgroup. Its a simple hack
  and not much of error checking. So make sure cgroup exists.

Signed-off-by: Vivek Goyal <vgoyal@...hat.com>
---
 HOWTO     |    3 +++
 fio.c     |    8 ++++++++
 fio.h     |    1 +
 options.c |    7 +++++++
 4 files changed, 19 insertions(+)

Index: fio/options.c
===================================================================
--- fio.orig/options.c	2009-12-02 11:10:36.000000000 -0500
+++ fio/options.c	2009-12-02 13:40:49.000000000 -0500
@@ -1727,6 +1727,13 @@ static struct fio_option options[] = {
 		.help	= "Select a specific builtin performance test",
 	},
 	{
+		.name	= "cgroup",
+		.type	= FIO_OPT_STR_STORE,
+		.off1	= td_var_offset(cgroup),
+		.cb	= str_directory_cb,
+		.help	= "cgroup directory to run the job in",
+	},
+	{
 		.name = NULL,
 	},
 };
Index: fio/fio.h
===================================================================
--- fio.orig/fio.h	2009-12-02 11:10:36.000000000 -0500
+++ fio/fio.h	2009-12-02 13:42:26.000000000 -0500
@@ -271,6 +271,7 @@ struct thread_options {
 	 * Benchmark profile type
 	 */
 	unsigned int profile;
+	char *cgroup;
 };
 
 #define FIO_VERROR_SIZE	128
Index: fio/fio.c
===================================================================
--- fio.orig/fio.c	2009-12-02 11:10:36.000000000 -0500
+++ fio/fio.c	2009-12-02 13:51:16.000000000 -0500
@@ -1025,6 +1025,14 @@ static void *thread_main(void *data)
 	pthread_cond_init(&td->verify_cond, &attr);
 	pthread_cond_init(&td->free_cond, &attr);
 
+	/* Move thread to right cgroup */
+	if (td->o.cgroup) {
+		char str[50];
+		sprintf(str, "echo %d > %s/tasks", td->pid, td->o.cgroup);
+		if (system(str) == -1)
+			log_err("fio: exec of cmd <%s> failed\n", str);
+	}
+
 	td_set_runstate(td, TD_INITIALIZED);
 	dprint(FD_MUTEX, "up startup_mutex\n");
 	fio_mutex_up(startup_mutex);
Index: fio/HOWTO
===================================================================
--- fio.orig/HOWTO	2009-12-02 11:10:36.000000000 -0500
+++ fio/HOWTO	2009-12-02 14:04:55.000000000 -0500
@@ -1003,6 +1003,9 @@ continue_on_error=bool	Normally fio will
 		given in the stats is the first error that was hit during the
 		run.
 
+cgroup=str	Specify the cgroup directory in which a job should run.
+		ex. cgroup=/cgroup/blkio/test1/
+
 
 6.0 Interpreting the output
 ---------------------------
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ