From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753561AbcFLRNO (ORCPT ); Sun, 12 Jun 2016 13:13:14 -0400 Received: from mail-wm0-f47.google.com ([74.125.82.47]:36132 "EHLO mail-wm0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752555AbcFLRNM (ORCPT ); Sun, 12 Jun 2016 13:13:12 -0400 Message-ID: <1465751587.15050.23.camel@nexus-software.ie> Subject: Re: [PATCH v5 00/11] serial: 8250: split LPSS to 8250_lpss, enable DMA on Quark From: "Bryan O'Donoghue" To: Andy Shevchenko Cc: Andy Shevchenko , Peter Hurley , "linux-serial@vger.kernel.org" , Vinod Koul , "linux-kernel@vger.kernel.org" , dmaengine , Greg Kroah-Hartman , "Puustinen, Ismo" , Heikki Krogerus Date: Sun, 12 Jun 2016 18:13:07 +0100 In-Reply-To: References: <1462547840-14091-1-git-send-email-andriy.shevchenko@linux.intel.com> <1463065601.17131.319.camel@linux.intel.com> <1463620733.4224.75.camel@nexus-software.ie> <1464111448.31269.67.camel@linux.intel.com> <1464113301.31269.79.camel@linux.intel.com> <1464280589.2351.19.camel@nexus-software.ie> Organization: Nexus Software Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.18.5.2-0ubuntu1 Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 2016-06-07 at 13:04 +0300, Andy Shevchenko wrote: > > I'll find some time to look at both a short stream and a long > stream, > > based on the branch you've indicated and maybe against the latest > > stable kernel. > > Please, do. I'm planning to resend new version soon (this week or > lately beginning of the next one). So. Generally DMA appears to make little-to-no difference here. With small data sets, 128 bytes in the test case - there appears to be a slight performance gain at lower BAUD rates, however for small data-sets and large data sets 32k for the large test case, there appears to be a performance penalty at higher BAUD rates. One thing I have noticed is that the following never completes and can't be reset back to mode=0 or mode=3 to restore functionality - definitely worth looking at if you are spinning another patch. ### never completes #### root@galileo:~# echo 1 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# stty -F /dev/ttyS0 921600 root@galileo:~# time cat tester.txt > /dev/ttyS0 ### never completes #### Performance data set root@galileo:~# dmesg > tester.txt root@galileo:~# ls -las tester.txt  32 -rw-r--r-- 1 root root 32300 Jan  1  2001 tester.txt #### With DMA on @ 926100 32k file #### root@galileo:~# echo 0 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# stty -F /dev/ttyS0 921600 root@galileo:~# time cat tester.txt > /dev/ttyS0 real    0m0.421s user    0m0.010s sys     0m0.000s ### With NoDMA on @ 926100 32k file #### root@galileo:~# echo 3 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# stty -F /dev/ttyS0 921600 root@galileo:~# time cat tester.txt > /dev/ttyS0 real    0m0.421s user    0m0.020s sys     0m0.000s #### With DMA on @ 9600 32k file #### root@galileo:~# echo 0 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# stty -F /dev/ttyS0 9600   root@galileo:~# time cat tester.txt > /dev/ttyS0 real    0m34.381s user    0m0.000s sys     0m0.010s #### With NoDMA on @ 9600 32k file ##### root@galileo:~# echo 3 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# stty -F /dev/ttyS0 9600 root@galileo:~# time cat tester.txt > /dev/ttyS0 real    0m34.391s user    0m0.010s sys     0m0.000s root@galileo:~# ls -las tester_small.txt  4 -rw-r--r-- 1 root root 128 Jan  1 00:06 tester_small.txt ### With DMA on @ 921600 128 byte test file ### root@galileo:~# stty -F /dev/ttyS0 921600 root@galileo:~# echo 0 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# time cat tester_small.txt > /dev/ttyS0 real    0m0.031s user    0m0.010s sys     0m0.000s ### With NoDMA on @ 921600 128 byte test file ### root@galileo:~# stty -F /dev/ttyS0 921600 root@galileo:~# echo 3 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# time cat tester_small.txt > /dev/ttyS0 real    0m0.013s user    0m0.010s sys     0m0.000s ### With DMA on @ 9600 128 byte test file ### root@galileo:~# stty -F /dev/ttyS0 9600 root@galileo:~# echo 0 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# time cat tester_small.txt > /dev/ttyS0 real    0m0.161s user    0m0.000s sys     0m0.010s ### With NoDMA on @ 9600 128 byte test file ### root@galileo:~# stty -F /dev/ttyS0 9600 root@galileo:~# echo 3 > /sys/class/tty/ttyS0/dma_mode root@galileo:~# time cat tester_small.txt > /dev/ttyS0 real    0m0.161s user    0m0.000s sys     0m0.000s --- bod