Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp1002267pxm; Wed, 23 Feb 2022 15:39:26 -0800 (PST) X-Google-Smtp-Source: ABdhPJx3lAHw05ia7RhpEV4eIYZEAJ4LWJChN7p3g1uRWT8yPGogMYiSnqjN/sg82gTjXWSHNdGM X-Received: by 2002:a63:ee18:0:b0:372:8466:565c with SMTP id e24-20020a63ee18000000b003728466565cmr122825pgi.564.1645659565872; Wed, 23 Feb 2022 15:39:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645659565; cv=none; d=google.com; s=arc-20160816; b=MjUuLSx4Pgpp6Q0P9yORh2M2tEK9PJcSOq3U/tlpNirIqNkF2gVb+oWLne9oTA+5T8 vRv9q4QycnQLW3nX7++/XZPrQJ6W6BD3zu8w+DZSczwiuNTBNEreBaE7MHpZjWdydMis dQrYKGiy0RY2Fab6IKL91R7ugdBelXI7T8cR25R8t6/N/iy9vLnwmolHSFoIhDZVjPy0 RfeY5cqLwRaDMiE5c8lFZ38fgWR1BTAUo5n4wK8ksqRrM6Jrb6SstVCqhZEHGNry0DwC ceCJ19WFpcUH6+NOazkG8bTxs8r8nWFn5YO5ZCxCEeT3p1r8KExZoaxE3xUY9RkGc66a dseg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=0NTRkpCbtgnHkdUm2pzzbgaknEKcYw9++eg5mABsrkc=; b=waUzJTlYDRV3gXfqviAT8u1a3SxRJIqSAqpHBFdErdIye20Hd7tLMksoifsTU6+FMD RE/TsQNSLYmnUkXjZ20AxjaiFzEYOZUwKR5gB20l7khwurR+AlovPjLAEBIWHoW49rkm 996zMEZz/42HJHftoQqZedt/0ihZFsR9EOEvQlFTnw98pVHMz0D7E0ztlg4maMpoWYpD oyHtIfYtEARn9andU2frxfMepusDgbnXwvE5MP034tANasAcrVS6DeoCh5Qqru0Rq2+p WOpXjS6VrY4XKHcWidFj6H+KNB6fvDkAfRq6OIInwe49vxWLjbUNkKGY876VirH2ny7F Nddw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n9si1011890plg.23.2022.02.23.15.38.51; Wed, 23 Feb 2022 15:39:25 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240818AbiBWPZ1 (ORCPT + 99 others); Wed, 23 Feb 2022 10:25:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35488 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234260AbiBWPZ0 (ORCPT ); Wed, 23 Feb 2022 10:25:26 -0500 Received: from wp530.webpack.hosteurope.de (wp530.webpack.hosteurope.de [IPv6:2a01:488:42:1000:50ed:8234::]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 21795427CA; Wed, 23 Feb 2022 07:24:58 -0800 (PST) Received: from ip4d144895.dynamic.kabel-deutschland.de ([77.20.72.149] helo=[192.168.66.200]); authenticated by wp530.webpack.hosteurope.de running ExIM with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) id 1nMtVd-0008EV-QY; Wed, 23 Feb 2022 16:24:53 +0100 Message-ID: <6bdf8ca8-8836-4e44-5c27-0644aa9819ca@leemhuis.info> Date: Wed, 23 Feb 2022 16:24:52 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Subject: Re: [RFC] Scheduler: DMA Engine regression because of sched/fair changes Content-Language: en-BZ To: Alexander Fomichev , Hillf Danton Cc: Mel Gorman , linux-kernel@vger.kernel.org, dmaengine@vger.kernel.org, linux@yadro.com, Peter Zijlstra , "regressions@lists.linux.dev" References: <20220112152609.gg2boujeh5vv5cns@yadro.com> <20220112170512.GO3301@suse.de> <20220117081905.a4pwglxqj7dqpyql@yadro.com> <20220117102701.GQ3301@suse.de> <20220118020448.2399-1-hdanton@sina.com> <20220121101217.2849-1-hdanton@sina.com> <20220122233314.2999-1-hdanton@sina.com> <20220128165058.zxyrnd7nzr4hlks2@yadro.com> From: Thorsten Leemhuis In-Reply-To: <20220128165058.zxyrnd7nzr4hlks2@yadro.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-bounce-key: webpack.hosteurope.de;regressions@leemhuis.info;1645629898;bb9df89e; X-HE-SMSGID: 1nMtVd-0008EV-QY X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,NICE_REPLY_A, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, this is your Linux kernel regression tracker. Top-posting for once, to make this easy accessible to everyone. After below message nothing happened anymore afaics. Could anybody be so kind to provide a quick status update, to ensure this wasn't simply forgotten? And if this is not considered a regression anymore (I didn#t fully understand below message, sorry), it would be ideal if the person that replies could include a paragraph stating something like "#regzbot invalid: Some reason why this can be ignored", as then I'll stop tracking this. tia! Ciao, Thorsten (wearing his 'the Linux kernel's regression tracker' hat) P.S.: As the Linux kernel's regression tracker I'm getting a lot of reports on my table. I can only look briefly into most of them and lack knowledge about most of the areas they concern. I thus unfortunately will sometimes get things wrong or miss something important. I hope that's not the case here; if you think it is, don't hesitate to tell me in a public reply, it's in everyone's interest to set the public record straight. #regzbot poke On 28.01.22 17:50, Alexander Fomichev wrote: > On Sun, Jan 23, 2022 at 07:33:14AM +0800, Hillf Danton wrote: >> >> Lets put pieces together based on the data collected. >> >> 1, No irq migration was observed. >> >> 2, Your patch that produced the highest iops fo far >> >> -----< 5.15.8-ioat-ptdma-dirty-fix+ >----- >> [ 6183.356549] dmatest: Added 1 threads using dma0chan0 >> [ 6187.868237] dmatest: Started 1 threads using dma0chan0 >> [ 6187.887389] dmatest: dma0chan0-copy0: summary 1000 tests, 0 failures 52753.74 iops 3376239 KB/s (0) >> [ 6201.913154] dmatest: Added 1 threads using dma0chan0 >> [ 6204.701340] dmatest: Started 1 threads using dma0chan0 >> [ 6204.720490] dmatest: dma0chan0-copy0: summary 1000 tests, 0 failures 52614.96 iops 3367357 KB/s (0) >> [ 6285.114603] dmatest: Added 1 threads using dma0chan0 >> [ 6287.031875] dmatest: Started 1 threads using dma0chan0 >> [ 6287.050278] dmatest: dma0chan0-copy0: summary 1000 tests, 0 failures 54939.01 iops 3516097 KB/s (0) >> -----< end >----- >> >> >> - if (available_idle_cpu(this_cpu) && cpus_share_cache(this_cpu, prev_cpu)) >> - return available_idle_cpu(prev_cpu) ? prev_cpu : this_cpu; >> + if (available_idle_cpu(this_cpu)) >> + return this_cpu; >> >> prefers this cpu if it is idle regardless of cache affinity. >> >> This implies task migration to the cpu that handled irq. >> >> 3, Given this cpu is different from the prev cpu in addition to no irq >> migration, the tested task was bouncing between the two cpus, with one >> more question rising, why was task migrated off from the irq-handling cpu? >> >> Despite no evidence, I bet no bounce occurred given iops observed. >> > > IMHO, your assumptions are correct. > I've added CPU number counters on every step of dmatest. It reveals that > test task migration between (at least 2) CPUs occurs in even one thread > mode. Below is for vanilla 5.15.8 kernel: > > -----< threads_per_chan=1 >----- > [19449.557950] dmatest: Added 1 threads using dma0chan0 > [19469.238180] dmatest: Started 1 threads using dma0chan0 > [19469.253962] dmatest: dma0chan0-copy0: summary 1000 tests, 0 failures 65291.19 iops 4178636 KB/s (0) > [19469.253973] dmatest: CPUs hit: #52:417 #63:583 (times) > -----< end >----- > > Note that IRQ handler runs on CPU #52 in this environment. > > In 4 thread mode the task migrates even more aggressively: > > -----< threads_per_chan=4 >----- > [19355.460227] dmatest: Added 4 threads using dma0chan0 > [19359.841182] dmatest: Started 4 threads using dma0chan0 > [19359.860447] dmatest: dma0chan0-copy3: summary 1000 tests, 0 failures 53908.35 iops 3450134 KB/s (0) > [19359.860451] dmatest: dma0chan0-copy2: summary 1000 tests, 0 failures 54179.98 iops 3467519 KB/s (0) > [19359.860456] dmatest: CPUs hit: #50:1000 (times) > [19359.860459] dmatest: CPUs hit: #17:1000 (times) > [19359.860459] dmatest: dma0chan0-copy0: summary 1000 tests, 0 failures 54048.21 iops 3459085 KB/s (0) > [19359.860466] dmatest: CPUs hit: #31:1000 (times) > [19359.861420] dmatest: dma0chan0-copy1: summary 1000 tests, 0 failures 51466.80 iops 3293875 KB/s (0) > [19359.861425] dmatest: CPUs hit: #30:213 #48:556 #52:231 (times) > -----< end >----- > > On the other hand, for dirty-patched kernel task doesn't migrate: > > -----< patched threads_per_chan=1 >----- > [ 2100.142002] dmatest: Added 1 threads using dma0chan0 > [ 2102.359727] dmatest: Started 1 threads using dma0chan0 > [ 2102.373594] dmatest: dma0chan0-copy0: summary 1000 tests, 0 failures 76173.06 iops 4875076 KB/s (0) > [ 2102.373600] dmatest: CPUs hit: #49:1000 (times) > -----< end >----- > > IRQ handler runs on CPU #49 in this case. > > Although in 4 thread mode the task still migrates. I think we should > consider such scenario as non-relevant for this isue. >