From: Xianting Tian <xianting.tian@linux.alibaba.com> To: gregkh@linuxfoundation.org, jirislaby@kernel.org, amit@kernel.org, arnd@arndb.de, osandov@fb.com Cc: shile.zhang@linux.alibaba.com, linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux-foundation.org, linux-kernel@vger.kernel.org, Xianting Tian <xianting.tian@linux.alibaba.com> Subject: [PATCH v10 0/3] make hvc pass dma capable memory to its backend Date: Sat, 9 Oct 2021 19:48:26 +0800 [thread overview] Message-ID: <20211009114829.1071021-1-xianting.tian@linux.alibaba.com> (raw) Dear all, This patch series make hvc framework pass DMA capable memory to put_chars() of hvc backend(eg, virtio-console), and revert commit c4baad5029 ("virtio-console: avoid DMA from stack”) V1 virtio-console: avoid DMA from vmalloc area https://lkml.org/lkml/2021/7/27/494 For v1 patch, Arnd Bergmann suggests to fix the issue in the first place: Make hvc pass DMA capable memory to put_chars() The fix suggestion is included in v2. V2 [PATCH 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/1/8 [PATCH 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/1/9 For v2 patch, Arnd Bergmann suggests to make new buf part of the hvc_struct structure, and fix the compile issue. The fix suggestion is included in v3. V3 [PATCH v3 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/3/1347 [PATCH v3 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/3/1348 For v3 patch, Jiri Slaby suggests to make 'char c[N_OUTBUF]' part of hvc_struct, and make 'hp->outbuf' aligned and use struct_size() to calculate the size of hvc_struct. The fix suggestion is included in v4. V4 [PATCH v4 0/2] make hvc pass dma capable memory to its backend https://lkml.org/lkml/2021/8/5/1350 [PATCH v4 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/5/1351 [PATCH v4 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/5/1352 For v4 patch, Arnd Bergmann suggests to introduce another array(cons_outbuf[]) for the buffer pointers next to the cons_ops[] and vtermnos[] arrays. This fix included in this v5 patch. V5 Arnd Bergmann suggests to use "L1_CACHE_BYTES" as dma alignment, use 'sizeof(long)' as dma alignment is wrong. fix it in v6. V6 It contains coding error, fix it in v7 and it worked normally according to test result. V7 Greg KH suggests to add test and code review developer, Jiri Slaby suggests to use lockless buffer and fix dma alignment in separate patch. fix above things in v8. V8 This contains coding error when switch to use new buffer. fix it in v9. V9 It didn't make things much clearer, it needs add more comments for new added buf. Add use lock to protect new added buffer. fix in v10. ********TEST STEPS********* 1, config guest console=hvc0 2, start guest 3, login guest Welcome to Buildroot buildroot login: root # # cat /proc/cmdline console=hvc0,115200 # drivers/tty/hvc/hvc_console.c | 38 +++++++++++++++++++++-------------- drivers/tty/hvc/hvc_console.h | 24 ++++++++++++++++++++-- drivers/char/virtio_console.c | 12 ++---------- 3 file changed
WARNING: multiple messages have this Message-ID (diff)
From: Xianting Tian <xianting.tian@linux.alibaba.com> To: gregkh@linuxfoundation.org, jirislaby@kernel.org, amit@kernel.org, arnd@arndb.de, osandov@fb.com Cc: Xianting Tian <xianting.tian@linux.alibaba.com>, shile.zhang@linux.alibaba.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, virtualization@lists.linux-foundation.org Subject: [PATCH v10 0/3] make hvc pass dma capable memory to its backend Date: Sat, 9 Oct 2021 19:48:26 +0800 [thread overview] Message-ID: <20211009114829.1071021-1-xianting.tian@linux.alibaba.com> (raw) Dear all, This patch series make hvc framework pass DMA capable memory to put_chars() of hvc backend(eg, virtio-console), and revert commit c4baad5029 ("virtio-console: avoid DMA from stack”) V1 virtio-console: avoid DMA from vmalloc area https://lkml.org/lkml/2021/7/27/494 For v1 patch, Arnd Bergmann suggests to fix the issue in the first place: Make hvc pass DMA capable memory to put_chars() The fix suggestion is included in v2. V2 [PATCH 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/1/8 [PATCH 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/1/9 For v2 patch, Arnd Bergmann suggests to make new buf part of the hvc_struct structure, and fix the compile issue. The fix suggestion is included in v3. V3 [PATCH v3 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/3/1347 [PATCH v3 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/3/1348 For v3 patch, Jiri Slaby suggests to make 'char c[N_OUTBUF]' part of hvc_struct, and make 'hp->outbuf' aligned and use struct_size() to calculate the size of hvc_struct. The fix suggestion is included in v4. V4 [PATCH v4 0/2] make hvc pass dma capable memory to its backend https://lkml.org/lkml/2021/8/5/1350 [PATCH v4 1/2] tty: hvc: pass DMA capable memory to put_chars() https://lkml.org/lkml/2021/8/5/1351 [PATCH v4 2/2] virtio-console: remove unnecessary kmemdup() https://lkml.org/lkml/2021/8/5/1352 For v4 patch, Arnd Bergmann suggests to introduce another array(cons_outbuf[]) for the buffer pointers next to the cons_ops[] and vtermnos[] arrays. This fix included in this v5 patch. V5 Arnd Bergmann suggests to use "L1_CACHE_BYTES" as dma alignment, use 'sizeof(long)' as dma alignment is wrong. fix it in v6. V6 It contains coding error, fix it in v7 and it worked normally according to test result. V7 Greg KH suggests to add test and code review developer, Jiri Slaby suggests to use lockless buffer and fix dma alignment in separate patch. fix above things in v8. V8 This contains coding error when switch to use new buffer. fix it in v9. V9 It didn't make things much clearer, it needs add more comments for new added buf. Add use lock to protect new added buffer. fix in v10. ********TEST STEPS********* 1, config guest console=hvc0 2, start guest 3, login guest Welcome to Buildroot buildroot login: root # # cat /proc/cmdline console=hvc0,115200 # drivers/tty/hvc/hvc_console.c | 38 +++++++++++++++++++++-------------- drivers/tty/hvc/hvc_console.h | 24 ++++++++++++++++++++-- drivers/char/virtio_console.c | 12 ++---------- 3 file changed
next reply other threads:[~2021-10-09 11:48 UTC|newest] Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-10-09 11:48 Xianting Tian [this message] 2021-10-09 11:48 ` [PATCH v10 0/3] make hvc pass dma capable memory to its backend Xianting Tian 2021-10-09 11:48 ` [PATCH v10 1/3] tty: hvc: use correct dma alignment size Xianting Tian 2021-10-09 11:48 ` Xianting Tian 2021-10-09 11:48 ` [PATCH v10 2/3] tty: hvc: pass DMA capable memory to put_chars() Xianting Tian 2021-10-09 11:48 ` Xianting Tian 2021-10-09 11:55 ` Greg KH 2021-10-09 11:55 ` Greg KH 2021-10-09 11:55 ` Greg KH 2021-10-09 11:58 ` Greg KH 2021-10-09 11:58 ` Greg KH 2021-10-09 11:58 ` Greg KH 2021-10-09 15:45 ` Xianting Tian 2021-10-09 15:45 ` Xianting Tian 2021-10-10 5:33 ` Greg KH 2021-10-10 5:33 ` Greg KH 2021-10-10 5:33 ` Greg KH 2021-10-14 8:34 ` Xianting Tian 2021-10-14 8:34 ` Xianting Tian 2021-10-14 8:41 ` Greg KH 2021-10-14 8:41 ` Greg KH 2021-10-14 8:41 ` Greg KH 2021-10-14 8:56 ` Xianting Tian 2021-10-14 8:56 ` Xianting Tian 2021-10-09 11:48 ` [PATCH v10 3/3] virtio-console: remove unnecessary kmemdup() Xianting Tian 2021-10-09 11:48 ` Xianting Tian
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=20211009114829.1071021-1-xianting.tian@linux.alibaba.com \ --to=xianting.tian@linux.alibaba.com \ --cc=amit@kernel.org \ --cc=arnd@arndb.de \ --cc=gregkh@linuxfoundation.org \ --cc=jirislaby@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=osandov@fb.com \ --cc=shile.zhang@linux.alibaba.com \ --cc=virtualization@lists.linux-foundation.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: linkBe 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.