From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752161AbbKHNuW (ORCPT ); Sun, 8 Nov 2015 08:50:22 -0500 Received: from mga09.intel.com ([134.134.136.24]:54025 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750887AbbKHNuS (ORCPT ); Sun, 8 Nov 2015 08:50:18 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.20,262,1444719600"; d="scan'208";a="814663556" Date: Sun, 8 Nov 2015 19:23:53 +0530 From: Vinod Koul To: Sinan Kaya Cc: Andy Shevchenko , Dan Williams , "dmaengine@vger.kernel.org" , timur@codeaurora.org, cov@codeaurora.org, jcm@redhat.com, "linux-kernel@vger.kernel.org" Subject: Re: [PATCH V2 2/3] dmaselftest: add memcpy selftest support functions Message-ID: <20151108135352.GA22709@localhost> References: <20151103041528.GS21326@localhost> <5638359D.9080507@codeaurora.org> <20151103063009.GT21326@localhost> <20151103160800.GD12910@localhost> <563AC226.30303@codeaurora.org> <20151105120527.GX12910@localhost> <563B812E.5090202@codeaurora.org> <563D98E6.6070501@codeaurora.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <563D98E6.6070501@codeaurora.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Nov 07, 2015 at 01:23:34AM -0500, Sinan Kaya wrote: > > > On 11/5/2015 11:17 AM, Sinan Kaya wrote: > > > > > >On 11/5/2015 7:05 AM, Vinod Koul wrote: > >>On Wed, Nov 04, 2015 at 09:42:46PM -0500, Sinan Kaya wrote: > >>>Here is what I proposed. > >>> > >>>- a common file that gets compiled into a module that wants to use > >>>self-test with a public API. It can be called from driver's probe > >>>routine. > >>>- the test is independent of my implementation. It uses dmaengine > >>>API and should be portable to most drivers. > >>>- there *are* still drivers in the kernel that has selftest code > >>>embedded inside them. I followed the design pattern from other > >>>drivers thinking this must have been a good idea and it paid off for > >>>me. > >>> > >>>As far as I understand, there is interest in doing more than this > >>>and reusing the dmatest code for code duplication. > >> > >>the code that selftest uses to test will be very similar to dmatest code, > >>both of these _should_ share this common code so that fixes get done for > >>both! > >> > > > >OK, I can move the code around and try to combine it if possible. > > > > I looked at this. IMO, merging selftest code and dmatest code is not > a good idea. > > Dmatest code has been well written and structured so that multiple > DMA capabilities (XOR, PQ, MEMCPY) can be tested with the same code. > > It supports threads and user space interaction. > > The code I want to change (dmatest_func) is 3 levels deep in > structure. My refactored code looked really ugly compared to the > original code. dmatest_func is still a bigger fn specific to dmatest. I was thinking that we should have rather have two common functions 1) dmatest_do_dma() which does buffer allocation, invoking dmaengine APIs and checking results, part of dmatest_func today 2) request_channels() would also be common along with cleanup routines > >>>Facts: > >>>- Dmatest can be actually configured to run during boot. > >>>- Nobody besides the dma driver developer uses dmatest. This leaves > >>>holes for regressions that are really hard to debug due to > >>>interaction with the rest of the system. > >>>- Dmatest doesn't exist in most distribution kernels. > >> > >>That doesn't mean it is not useful. This line of thought is not quite > >>right. > >>You are trying to say dmatest in not important and selftest is. Sorry but > >>you are wrong, both are equally important and since both try to test > >>and use > >>similar routines (dmaengien API) they need to share the code and not > >>duplicate it > >> > >>>If we want to do something else, I need clear directions. I can > >>>remove the self test code completely from my driver. But, I need an > >>>equivalent functionality. > >> > >>Add selftest to dmatest, we need both! > >> > > > >OK, do you have any objections to compiling dmatest along with hidma in > >the same module and calling a function from there ? or do you have > >something else in your mind ? Not the dmatest completely, that won't be right, but yes for the dmatest core which is common b/w both. We cna put this is separate file to compile along with driver if that is users requirement -- ~Vinod