From: Amit Shah <amit.shah@redhat.com>
To: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
qemu-devel@nongnu.org, Frederic Weisbecker <fweisbec@gmail.com>,
yrl.pp-manager.tt@hitachi.com, linux-kernel@vger.kernel.org,
Borislav Petkov <bp@amd64.org>,
virtualization@lists.linux-foundation.org,
Herbert Xu <herbert@gondor.hengli.com.au>,
"Franch Ch. Eigler" <fche@redhat.com>,
Ingo Molnar <mingo@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Steven Rostedt <rostedt@goodmis.org>,
Anthony Liguori <anthony@codemonkey.ws>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Subject: Re: [RFC PATCH 1/6] virtio/console: Add splice_write support
Date: Thu, 9 Aug 2012 14:30:15 +0530 [thread overview]
Message-ID: <20120809090015.GG3280@amit.redhat.com> (raw)
In-Reply-To: <20120724023707.6600.69536.stgit@ltc189.sdl.hitachi.co.jp>
On (Tue) 24 Jul 2012 [11:37:07], Yoshihiro YUNOMAE wrote:
> From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
>
> Enable to use splice_write from pipe to virtio-console port.
> This steals pages from pipe and directly send it to host.
>
> Note that this may accelerate only the guest to host path.
>
> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
> Cc: Amit Shah <amit.shah@redhat.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> +/* Faster zero-copy write by splicing */
> +static ssize_t port_fops_splice_write(struct pipe_inode_info *pipe,
> + struct file *filp, loff_t *ppos,
> + size_t len, unsigned int flags)
> +{
> + struct port *port = filp->private_data;
> + struct sg_list sgl;
> + ssize_t ret;
> + struct splice_desc sd = {
> + .total_len = len,
> + .flags = flags,
> + .pos = *ppos,
> + .u.data = &sgl,
> + };
> +
> + sgl.n = 0;
> + sgl.len = 0;
> + sgl.sg = kmalloc(sizeof(struct scatterlist) * MAX_SPLICE_PAGES,
> + GFP_ATOMIC);
Do you expect this function to be called from interrupt context?
> + if (unlikely(!sgl.sg))
> + return -ENOMEM;
> +
> + sg_init_table(sgl.sg, MAX_SPLICE_PAGES);
> + ret = __splice_from_pipe(pipe, &sd, pipe_to_sg);
> + if (likely(ret > 0))
> + ret = send_pages(port, sgl.sg, sgl.n, sgl.len, true);
> +
> + return ret;
> +}
Amit
WARNING: multiple messages have this Message-ID (diff)
From: Amit Shah <amit.shah@redhat.com>
To: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
Cc: linux-kernel@vger.kernel.org,
Anthony Liguori <anthony@codemonkey.ws>,
Arnd Bergmann <arnd@arndb.de>, Borislav Petkov <bp@amd64.org>,
"Franch Ch. Eigler" <fche@redhat.com>,
Frederic Weisbecker <fweisbec@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Herbert Xu <herbert@gondor.hengli.com.au>,
Ingo Molnar <mingo@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Steven Rostedt <rostedt@goodmis.org>,
virtualization@lists.linux-foundation.org, qemu-devel@nongnu.org,
yrl.pp-manager.tt@hitachi.com,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Subject: Re: [RFC PATCH 1/6] virtio/console: Add splice_write support
Date: Thu, 9 Aug 2012 14:30:15 +0530 [thread overview]
Message-ID: <20120809090015.GG3280@amit.redhat.com> (raw)
In-Reply-To: <20120724023707.6600.69536.stgit@ltc189.sdl.hitachi.co.jp>
On (Tue) 24 Jul 2012 [11:37:07], Yoshihiro YUNOMAE wrote:
> From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
>
> Enable to use splice_write from pipe to virtio-console port.
> This steals pages from pipe and directly send it to host.
>
> Note that this may accelerate only the guest to host path.
>
> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
> Cc: Amit Shah <amit.shah@redhat.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> +/* Faster zero-copy write by splicing */
> +static ssize_t port_fops_splice_write(struct pipe_inode_info *pipe,
> + struct file *filp, loff_t *ppos,
> + size_t len, unsigned int flags)
> +{
> + struct port *port = filp->private_data;
> + struct sg_list sgl;
> + ssize_t ret;
> + struct splice_desc sd = {
> + .total_len = len,
> + .flags = flags,
> + .pos = *ppos,
> + .u.data = &sgl,
> + };
> +
> + sgl.n = 0;
> + sgl.len = 0;
> + sgl.sg = kmalloc(sizeof(struct scatterlist) * MAX_SPLICE_PAGES,
> + GFP_ATOMIC);
Do you expect this function to be called from interrupt context?
> + if (unlikely(!sgl.sg))
> + return -ENOMEM;
> +
> + sg_init_table(sgl.sg, MAX_SPLICE_PAGES);
> + ret = __splice_from_pipe(pipe, &sd, pipe_to_sg);
> + if (likely(ret > 0))
> + ret = send_pages(port, sgl.sg, sgl.n, sgl.len, true);
> +
> + return ret;
> +}
Amit
WARNING: multiple messages have this Message-ID (diff)
From: Amit Shah <amit.shah@redhat.com>
To: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
Cc: Arnd Bergmann <arnd@arndb.de>,
qemu-devel@nongnu.org, Frederic Weisbecker <fweisbec@gmail.com>,
yrl.pp-manager.tt@hitachi.com, linux-kernel@vger.kernel.org,
Borislav Petkov <bp@amd64.org>,
virtualization@lists.linux-foundation.org,
Herbert Xu <herbert@gondor.hengli.com.au>,
"Franch Ch. Eigler" <fche@redhat.com>,
Ingo Molnar <mingo@redhat.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Steven Rostedt <rostedt@goodmis.org>,
Anthony Liguori <anthony@codemonkey.ws>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Subject: Re: [Qemu-devel] [RFC PATCH 1/6] virtio/console: Add splice_write support
Date: Thu, 9 Aug 2012 14:30:15 +0530 [thread overview]
Message-ID: <20120809090015.GG3280@amit.redhat.com> (raw)
In-Reply-To: <20120724023707.6600.69536.stgit@ltc189.sdl.hitachi.co.jp>
On (Tue) 24 Jul 2012 [11:37:07], Yoshihiro YUNOMAE wrote:
> From: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
>
> Enable to use splice_write from pipe to virtio-console port.
> This steals pages from pipe and directly send it to host.
>
> Note that this may accelerate only the guest to host path.
>
> Signed-off-by: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
> Cc: Amit Shah <amit.shah@redhat.com>
> Cc: Arnd Bergmann <arnd@arndb.de>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> ---
> +/* Faster zero-copy write by splicing */
> +static ssize_t port_fops_splice_write(struct pipe_inode_info *pipe,
> + struct file *filp, loff_t *ppos,
> + size_t len, unsigned int flags)
> +{
> + struct port *port = filp->private_data;
> + struct sg_list sgl;
> + ssize_t ret;
> + struct splice_desc sd = {
> + .total_len = len,
> + .flags = flags,
> + .pos = *ppos,
> + .u.data = &sgl,
> + };
> +
> + sgl.n = 0;
> + sgl.len = 0;
> + sgl.sg = kmalloc(sizeof(struct scatterlist) * MAX_SPLICE_PAGES,
> + GFP_ATOMIC);
Do you expect this function to be called from interrupt context?
> + if (unlikely(!sgl.sg))
> + return -ENOMEM;
> +
> + sg_init_table(sgl.sg, MAX_SPLICE_PAGES);
> + ret = __splice_from_pipe(pipe, &sd, pipe_to_sg);
> + if (likely(ret > 0))
> + ret = send_pages(port, sgl.sg, sgl.n, sgl.len, true);
> +
> + return ret;
> +}
Amit
next prev parent reply other threads:[~2012-08-09 9:00 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-24 2:36 [RFC PATCH 0/6] virtio-trace: Support virtio-trace Yoshihiro YUNOMAE
2012-07-24 2:36 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:36 ` Yoshihiro YUNOMAE
2012-07-24 2:37 ` [RFC PATCH 1/6] virtio/console: Add splice_write support Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-08-09 9:00 ` Amit Shah [this message]
2012-08-09 9:00 ` [Qemu-devel] " Amit Shah
2012-08-09 9:00 ` Amit Shah
2012-08-09 9:12 ` Masami Hiramatsu
2012-08-09 9:12 ` [Qemu-devel] " Masami Hiramatsu
2012-08-09 9:12 ` Masami Hiramatsu
2012-07-24 2:37 ` [RFC PATCH 2/6] virtio/console: Add a failback for unstealable pipe buffer Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-08-09 9:03 ` Amit Shah
2012-08-09 9:03 ` [Qemu-devel] " Amit Shah
2012-08-09 9:03 ` Amit Shah
2012-08-09 9:24 ` Borislav Petkov
2012-08-09 9:24 ` Borislav Petkov
2012-08-09 9:24 ` [Qemu-devel] " Borislav Petkov
2012-08-09 9:24 ` Masami Hiramatsu
2012-08-09 9:24 ` [Qemu-devel] " Masami Hiramatsu
2012-08-09 9:24 ` Masami Hiramatsu
2012-08-09 9:55 ` Amit Shah
2012-08-09 9:55 ` [Qemu-devel] " Amit Shah
2012-08-09 9:55 ` Amit Shah
2012-08-09 9:58 ` Avi Kivity
2012-08-09 9:58 ` [Qemu-devel] " Avi Kivity
2012-08-09 9:58 ` Avi Kivity
2012-08-09 10:14 ` Amit Shah
2012-08-09 10:14 ` [Qemu-devel] " Amit Shah
2012-08-09 10:14 ` Amit Shah
2012-08-09 12:35 ` Steven Rostedt
2012-08-09 12:35 ` [Qemu-devel] " Steven Rostedt
2012-08-09 12:35 ` Steven Rostedt
2012-07-24 2:37 ` [RFC PATCH 3/6] virtio/console: Wait until the port is ready on splice Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-24 2:37 ` [RFC PATCH 4/6] ftrace: Allow stealing pages from pipe buffer Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-30 22:12 ` Steven Rostedt
2012-07-30 22:12 ` [Qemu-devel] " Steven Rostedt
2012-07-30 22:12 ` Steven Rostedt
2012-07-24 2:37 ` [RFC PATCH 5/6] virtio/console: Allocate scatterlist according to the current pipe size Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-24 2:37 ` [RFC PATCH 6/6] tools: Add guest trace agent as a user tool Yoshihiro YUNOMAE
2012-07-24 2:37 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 2:37 ` Yoshihiro YUNOMAE
2012-07-24 3:27 ` [RFC PATCH 0/6] virtio-trace: Support virtio-trace Masami Hiramatsu
2012-07-24 3:27 ` Masami Hiramatsu
2012-07-24 3:27 ` [Qemu-devel] " Masami Hiramatsu
2012-07-24 10:02 ` Stefan Hajnoczi
2012-07-24 10:02 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-24 10:02 ` Stefan Hajnoczi
2012-07-24 11:03 ` Masami Hiramatsu
2012-07-24 11:03 ` Masami Hiramatsu
2012-07-24 11:03 ` [Qemu-devel] " Masami Hiramatsu
2012-07-24 11:19 ` Yoshihiro YUNOMAE
2012-07-24 11:19 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-24 11:19 ` Yoshihiro YUNOMAE
2012-07-24 13:41 ` Stefan Hajnoczi
2012-07-24 13:41 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-24 13:41 ` Stefan Hajnoczi
2012-07-25 9:13 ` Yoshihiro YUNOMAE
2012-07-25 9:13 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-25 9:13 ` Re: " Yoshihiro YUNOMAE
2012-07-26 10:52 ` Stefan Hajnoczi
2012-07-26 10:52 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-26 10:52 ` Re: " Stefan Hajnoczi
2012-07-24 13:43 ` Stefan Hajnoczi
2012-07-24 13:43 ` [Qemu-devel] " Stefan Hajnoczi
2012-07-24 13:43 ` Stefan Hajnoczi
2012-07-24 20:26 ` [Qemu-devel] " Blue Swirl
2012-07-24 20:26 ` Blue Swirl
2012-07-25 8:15 ` Masami Hiramatsu
2012-07-25 8:15 ` Masami Hiramatsu
2012-07-25 8:15 ` Masami Hiramatsu
2012-07-27 18:58 ` Blue Swirl
2012-07-27 18:58 ` Blue Swirl
2012-07-27 18:58 ` Blue Swirl
2012-07-26 11:35 ` Amit Shah
2012-07-26 11:35 ` [Qemu-devel] " Amit Shah
2012-07-26 11:35 ` Amit Shah
2012-07-27 8:55 ` Yoshihiro YUNOMAE
2012-07-27 8:55 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-27 8:55 ` Yoshihiro YUNOMAE
2012-07-27 9:43 ` Amit Shah
2012-07-27 9:43 ` [Qemu-devel] " Amit Shah
2012-07-27 9:43 ` Amit Shah
2012-07-31 0:52 ` Yoshihiro YUNOMAE
2012-07-31 0:52 ` [Qemu-devel] " Yoshihiro YUNOMAE
2012-07-31 0:52 ` Re: " Yoshihiro YUNOMAE
2012-08-09 10:16 ` Amit Shah
2012-08-09 10:16 ` [Qemu-devel] " Amit Shah
2012-08-09 10:16 ` Amit Shah
2012-08-21 2:17 ` Rusty Russell
2012-08-21 2:17 ` [Qemu-devel] " Rusty Russell
2012-08-21 2:17 ` Rusty Russell
2012-08-21 5:09 ` Amit Shah
2012-08-21 5:09 ` [Qemu-devel] " Amit Shah
2012-08-21 5:09 ` Amit Shah
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=20120809090015.GG3280@amit.redhat.com \
--to=amit.shah@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=arnd@arndb.de \
--cc=bp@amd64.org \
--cc=fche@redhat.com \
--cc=fweisbec@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=herbert@gondor.hengli.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mingo@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rostedt@goodmis.org \
--cc=virtualization@lists.linux-foundation.org \
--cc=yoshihiro.yunomae.ez@hitachi.com \
--cc=yrl.pp-manager.tt@hitachi.com \
/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.