All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pradeep Kiruvale <pradeepkiruvale@gmail.com>
To: Greg Kurz <gkurz@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org,
	"qemu-discuss@nongnu.org" <qemu-discuss@nongnu.org>
Subject: Re: [Qemu-devel] Virtio-9p and cgroup io-throttling
Date: Mon, 11 Apr 2016 16:18:53 +0200	[thread overview]
Message-ID: <CAJ2SuL=HDSn-kmaQqdLSB6dbuBon12Qct0h10sCeYLByh651cg@mail.gmail.com> (raw)
In-Reply-To: <20160408165801.1d93b372@bahia.huguette.org>

[-- Attachment #1: Type: text/plain, Size: 4947 bytes --]

Hi Greg,

Yes, it was nothing to do with the virtio-9p. I was writing at 4k Blocks
now I changed it to 1K Block. This works fine for me.

Thanks for your help.

Regards,
Pradeep

On 8 April 2016 at 16:58, Greg Kurz <gkurz@linux.vnet.ibm.com> wrote:

> On Fri, 8 Apr 2016 14:55:29 +0200
> Pradeep Kiruvale <pradeepkiruvale@gmail.com> wrote:
>
> > Hi Greg,
> >
> > FInd my replies inline
> >
> > >
> > > > Below is the way how I add to blkio
> > > >
> > > > echo "8:16 8388608" >
> > > > /sys/fs/cgroup/blkio/test/blkio.throttle.write_bps_device
> > > >
> > >
> > > Ok, this just puts a limit of 8MB/s when writing to /dev/sdb for all
> > > tasks in the test cgroup... but what about the tasks themselves ?
> > >
> > > > The problem I guess is adding these task ids to the "tasks" file in
> > > cgroup
> > > >
> > >
> > > Exactly. :)
> > >
> > > > These threads are started randomly and even then I add the PIDs to
> the
> > > > tasks file the cgroup still does not do IO control.
> > > >
> > >
> > > How did you get the PIDs ? Are you sure these threads you have added
> to the
> > > cgroup are the ones that write to /dev/sdb ?
> > >
> >
> > *Yes, I get PIDs from /proc/Qemu_PID/task*
> >
>
> And then you echoed the PIDs to /sys/fs/cgroup/blkio/test/tasks ?
>
> This is racy... another IO thread may be started to do some work on
> /dev/sdb
> just after you've read PIDs from /proc/Qemu_PID/task, and it won't be part
> of the cgroup.
>
> >
> >
> > >
> > > > Is it possible to reduce these number of threads? I see different
> number
> > > of
> > > > threads doing IO at different runs.
> > > >
> > >
> > > AFAIK, no.
> > >
> > > Why don't you simply start QEMU in the cgroup ? Unless I miss
> something,
> > > all
> > > children threads, including the 9p ones, will be in the cgroup and
> honor
> > > the
> > > throttle setttings.
> > >
> >
> >
> > *I started the qemu with cgroup as below*
> >
> > *cgexec -g blkio:/test qemu.......*
> > *Is there any other way of starting the qemu in cgroup?*
> >
>
> Maybe you can pass --sticky to cgexec to prevent cgred from moving
> children tasks to other cgroups...
>
> There's also the old fashion method:
>
> # echo $$ > /sys/fs/cgroup/blkio/test/tasks
> # qemu.....
>
> This being said, QEMU is a regular userspace program that is completely
> cgroup
> agnostic. It won't behave differently than 'dd if=/dev/sdb of=/dev/null'.
>
> This really doesn't look like a QEMU related issue to me.
>
> > Regards,
> > Pradeep
> >
>
> Cheers.
>
> --
> Greg
>
> >
> > >
> > > > Regards,
> > > > Pradeep
> > > >
> > >
> > > Cheers.
> > >
> > > --
> > > Greg
> > >
> > > >
> > > > On 8 April 2016 at 10:10, Greg Kurz <gkurz@linux.vnet.ibm.com>
> wrote:
> > > >
> > > > > On Thu, 7 Apr 2016 11:48:27 +0200
> > > > > Pradeep Kiruvale <pradeepkiruvale@gmail.com> wrote:
> > > > >
> > > > > > Hi All,
> > > > > >
> > > > > > I am using virtio-9p for sharing the file between host and
> guest. To
> > > test
> > > > > > the shared file I do read/write options in the guest.To have
> > > controlled
> > > > > io,
> > > > > > I am using cgroup blkio.
> > > > > >
> > > > > > While using cgroup I am facing two issues,Please find the issues
> > > below.
> > > > > >
> > > > > > 1. When I do IO throttling using the cgroup the read throttling
> works
> > > > > fine
> > > > > > but the write throttling does not wok. It still bypasses these
> > > throttling
> > > > > > control and does the default, am I missing something here?
> > > > > >
> > > > >
> > > > > Hi,
> > > > >
> > > > > Can you provide details on your blkio setup ?
> > > > >
> > > > > > I use the following commands to create VM, share the files and to
> > > > > > read/write from guest.
> > > > > >
> > > > > > *Create vm*
> > > > > > qemu-system-x86_64 -balloon none .......-name vm0 -cpu host -m
> 128
> > > -smp 1
> > > > > > -enable-kvm -parallel .... -fsdev
> > > > > >
> local,id=sdb1,path=/mnt/sdb1,security_model=none,writeout=immediate
> > > > > -device
> > > > > > virtio-9p-pci,fsdev=sdb1,mount_tag=sdb1
> > > > > >
> > > > > > *Mount file*
> > > > > > mount -t 9p -o trans=virtio,version=9p2000.L sdb1 /sdb1_ext4
> > > 2>>dd.log &&
> > > > > > sync
> > > > > >
> > > > > > touch /sdb1_ext4/dddrive
> > > > > >
> > > > > > *Write test*
> > > > > > dd if=/dev/zero of=/sdb1_ext4/dddrive bs=4k count=800000
> > > oflag=direct >>
> > > > > > dd.log 2>&1 && sync
> > > > > >
> > > > > > *Read test*
> > > > > > dd if=/sdb1_ext4/dddrive of=/dev/null >> dd.log 2>&1 && sync
> > > > > >
> > > > > > 2. The other issue is when I run "dd" command inside guest  it
> > > creates
> > > > > > multiple threads to write/read. I can see those on host using
> iotop
> > > is
> > > > > this
> > > > > > expected behavior?
> > > > > >
> > > > >
> > > > > Yes. QEMU uses a thread pool to handle 9p requests.
> > > > >
> > > > > > Regards,
> > > > > > Pradeep
> > > > >
> > > > > Cheers.
> > > > >
> > > > > --
> > > > > Greg
> > > > >
> > > > >
> > >
> > >
>
>
>

[-- Attachment #2: Type: text/html, Size: 7562 bytes --]

      reply	other threads:[~2016-04-11 14:19 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-07  9:48 [Qemu-devel] Virtio-9p and cgroup io-throttling Pradeep Kiruvale
2016-04-08  8:10 ` Greg Kurz
2016-04-08  9:51   ` Pradeep Kiruvale
2016-04-08 12:40     ` Greg Kurz
2016-04-08 12:55       ` Pradeep Kiruvale
2016-04-08 14:58         ` Greg Kurz
2016-04-11 14:18           ` Pradeep Kiruvale [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='CAJ2SuL=HDSn-kmaQqdLSB6dbuBon12Qct0h10sCeYLByh651cg@mail.gmail.com' \
    --to=pradeepkiruvale@gmail.com \
    --cc=gkurz@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-discuss@nongnu.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.