Re: stable-rc/linux-4.19.y bisection: baseline.dmesg.emerg on meson-gxm-q200

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Oct 16, 2023 at 07:40:40AM -0700, KernelCI bot wrote:

The KernelCI bisection bot has identified that commit 74fc50666e0af
("mmc: meson-gx: remove redundant mmc_request_done() call from irq
context") in v4.19 stable-rc is causing boot splats for meson-gxm-q200.
Full report below, including links to the full boot logs:

> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> * This automated bisection report was sent to you on the basis  *
> * that you may be involved with the breaking commit it has      *
> * found.  No manual investigation has been done to verify it,   *
> * and the root cause of the problem may be somewhere else.      *
> *                                                               *
> * If you do send a fix, please include this trailer:            *
> *   Reported-by: "kernelci.org bot" <bot@xxxxxxxxxxxx>          *
> *                                                               *
> * Hope this helps!                                              *
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> 
> stable-rc/linux-4.19.y bisection: baseline.dmesg.emerg on meson-gxm-q200
> 
> Summary:
>   Start:      b3c2ae79aa73e Linux 4.19.297-rc1
>   Plain log:  https://storage.kernelci.org/stable-rc/linux-4.19.y/v4.19.296-42-gb3c2ae79aa73/arm64/defconfig/gcc-10/lab-baylibre/baseline-meson-gxm-q200.txt
>   HTML log:   https://storage.kernelci.org/stable-rc/linux-4.19.y/v4.19.296-42-gb3c2ae79aa73/arm64/defconfig/gcc-10/lab-baylibre/baseline-meson-gxm-q200.html
>   Result:     74fc50666e0af mmc: meson-gx: remove redundant mmc_request_done() call from irq context
> 
> Checks:
>   revert:     PASS
>   verify:     PASS
> 
> Parameters:
>   Tree:       stable-rc
>   URL:        https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
>   Branch:     linux-4.19.y
>   Target:     meson-gxm-q200
>   CPU arch:   arm64
>   Lab:        lab-baylibre
>   Compiler:   gcc-10
>   Config:     defconfig
>   Test case:  baseline.dmesg.emerg
> 
> Breaking commit found:
> 
> -------------------------------------------------------------------------------
> commit 74fc50666e0af2514a7e6b0937166a75692c2a42
> Author: Martin Hundebøll <martin@xxxxxxxxxx>
> Date:   Wed Jun 7 10:27:12 2023 +0200
> 
>     mmc: meson-gx: remove redundant mmc_request_done() call from irq context
>     
>     [ Upstream commit 3c40eb8145325b0f5b93b8a169146078cb2c49d6 ]
>     
>     The call to mmc_request_done() can schedule, so it must not be called
>     from irq context. Wake the irq thread if it needs to be called, and let
>     its existing logic do its work.
>     
>     Fixes the following kernel bug, which appears when running an RT patched
>     kernel on the AmLogic Meson AXG A113X SoC:
>     [   11.111407] BUG: scheduling while atomic: kworker/0:1H/75/0x00010001
>     [   11.111438] Modules linked in:
>     [   11.111451] CPU: 0 PID: 75 Comm: kworker/0:1H Not tainted 6.4.0-rc3-rt2-rtx-00081-gfd07f41ed6b4-dirty #1
>     [   11.111461] Hardware name: RTX AXG A113X Linux Platform Board (DT)
>     [   11.111469] Workqueue: kblockd blk_mq_run_work_fn
>     [   11.111492] Call trace:
>     [   11.111497]  dump_backtrace+0xac/0xe8
>     [   11.111510]  show_stack+0x18/0x28
>     [   11.111518]  dump_stack_lvl+0x48/0x60
>     [   11.111530]  dump_stack+0x18/0x24
>     [   11.111537]  __schedule_bug+0x4c/0x68
>     [   11.111548]  __schedule+0x80/0x574
>     [   11.111558]  schedule_loop+0x2c/0x50
>     [   11.111567]  schedule_rtlock+0x14/0x20
>     [   11.111576]  rtlock_slowlock_locked+0x468/0x730
>     [   11.111587]  rt_spin_lock+0x40/0x64
>     [   11.111596]  __wake_up_common_lock+0x5c/0xc4
>     [   11.111610]  __wake_up+0x18/0x24
>     [   11.111620]  mmc_blk_mq_req_done+0x68/0x138
>     [   11.111633]  mmc_request_done+0x104/0x118
>     [   11.111644]  meson_mmc_request_done+0x38/0x48
>     [   11.111654]  meson_mmc_irq+0x128/0x1f0
>     [   11.111663]  __handle_irq_event_percpu+0x70/0x114
>     [   11.111674]  handle_irq_event_percpu+0x18/0x4c
>     [   11.111683]  handle_irq_event+0x80/0xb8
>     [   11.111691]  handle_fasteoi_irq+0xa4/0x120
>     [   11.111704]  handle_irq_desc+0x20/0x38
>     [   11.111712]  generic_handle_domain_irq+0x1c/0x28
>     [   11.111721]  gic_handle_irq+0x8c/0xa8
>     [   11.111735]  call_on_irq_stack+0x24/0x4c
>     [   11.111746]  do_interrupt_handler+0x88/0x94
>     [   11.111757]  el1_interrupt+0x34/0x64
>     [   11.111769]  el1h_64_irq_handler+0x18/0x24
>     [   11.111779]  el1h_64_irq+0x64/0x68
>     [   11.111786]  __add_wait_queue+0x0/0x4c
>     [   11.111795]  mmc_blk_rw_wait+0x84/0x118
>     [   11.111804]  mmc_blk_mq_issue_rq+0x5c4/0x654
>     [   11.111814]  mmc_mq_queue_rq+0x194/0x214
>     [   11.111822]  blk_mq_dispatch_rq_list+0x3ac/0x528
>     [   11.111834]  __blk_mq_sched_dispatch_requests+0x340/0x4d0
>     [   11.111847]  blk_mq_sched_dispatch_requests+0x38/0x70
>     [   11.111858]  blk_mq_run_work_fn+0x3c/0x70
>     [   11.111865]  process_one_work+0x17c/0x1f0
>     [   11.111876]  worker_thread+0x1d4/0x26c
>     [   11.111885]  kthread+0xe4/0xf4
>     [   11.111894]  ret_from_fork+0x10/0x20
>     
>     Fixes: 51c5d8447bd7 ("MMC: meson: initial support for GX platforms")
>     Cc: stable@xxxxxxxxxxxxxxx
>     Signed-off-by: Martin Hundebøll <martin@xxxxxxxxxx>
>     Link: https://lore.kernel.org/r/20230607082713.517157-1-martin@xxxxxxxxxx
>     Signed-off-by: Ulf Hansson <ulf.hansson@xxxxxxxxxx>
>     Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> 
> diff --git a/drivers/mmc/host/meson-gx-mmc.c b/drivers/mmc/host/meson-gx-mmc.c
> index 313aff92b97c9..a3e5be81b4660 100644
> --- a/drivers/mmc/host/meson-gx-mmc.c
> +++ b/drivers/mmc/host/meson-gx-mmc.c
> @@ -1067,11 +1067,8 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
>  	if (status & (IRQ_END_OF_CHAIN | IRQ_RESP_STATUS)) {
>  		if (data && !cmd->error)
>  			data->bytes_xfered = data->blksz * data->blocks;
> -		if (meson_mmc_bounce_buf_read(data) ||
> -		    meson_mmc_get_next_command(cmd))
> -			ret = IRQ_WAKE_THREAD;
> -		else
> -			ret = IRQ_HANDLED;
> +
> +		return IRQ_WAKE_THREAD;
>  	}
>  
>  out:
> @@ -1086,9 +1083,6 @@ static irqreturn_t meson_mmc_irq(int irq, void *dev_id)
>  		writel(start, host->regs + SD_EMMC_START);
>  	}
>  
> -	if (ret == IRQ_HANDLED)
> -		meson_mmc_request_done(host->mmc, cmd->mrq);
> -
>  	return ret;
>  }
> -------------------------------------------------------------------------------
> 
> 
> Git bisection log:
> 
> -------------------------------------------------------------------------------
> git bisect start
> # good: [94bffc1044d871e2ec89b2621e9a384355832988] Linux 4.19.288
> git bisect good 94bffc1044d871e2ec89b2621e9a384355832988
> # bad: [b3c2ae79aa73e61b75d4fa6f3dae226b59b7bd41] Linux 4.19.297-rc1
> git bisect bad b3c2ae79aa73e61b75d4fa6f3dae226b59b7bd41
> # bad: [5f63100cf9a673eaef15a1b1415d7a480af1571c] net: phy: broadcom: stub c45 read/write for 54810
> git bisect bad 5f63100cf9a673eaef15a1b1415d7a480af1571c
> # good: [916a02b6487f90cfcda24636e9b2b8da38b96bbc] net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field()/cpsw_ale_set_field()
> git bisect good 916a02b6487f90cfcda24636e9b2b8da38b96bbc
> # good: [f114bcacd558aaae6eb2bff350ae305632e4e37e] ARM: dts: imx6sll: fixup of operating points
> git bisect good f114bcacd558aaae6eb2bff350ae305632e4e37e
> # good: [56804da32a6edef397e9d967b01e82a4b04a8e9d] IMA: allow/fix UML builds
> git bisect good 56804da32a6edef397e9d967b01e82a4b04a8e9d
> # bad: [97a2d55ead76358245b446efd87818e919196d7a] virtio-mmio: don't break lifecycle of vm_dev
> git bisect bad 97a2d55ead76358245b446efd87818e919196d7a
> # good: [cbc6a5f11ca2a622f77bcb6901b274bd995653d6] irqchip/mips-gic: Use raw spinlock for gic_lock
> git bisect good cbc6a5f11ca2a622f77bcb6901b274bd995653d6
> # bad: [22b64a6b59fc2107d304715d8a778eebeb8659ae] mmc: Remove dev_err() usage after platform_get_irq()
> git bisect bad 22b64a6b59fc2107d304715d8a778eebeb8659ae
> # good: [d7aacfd2e388519434acf504a6b53099cc4da978] mmc: meson-gx: remove useless lock
> git bisect good d7aacfd2e388519434acf504a6b53099cc4da978
> # bad: [e1036bf905f9ec7b01fd5ee946a9a94f9671ee83] mmc: tmio: replace tmio_mmc_clk_stop() calls with tmio_mmc_set_clock()
> git bisect bad e1036bf905f9ec7b01fd5ee946a9a94f9671ee83
> # bad: [74fc50666e0af2514a7e6b0937166a75692c2a42] mmc: meson-gx: remove redundant mmc_request_done() call from irq context
> git bisect bad 74fc50666e0af2514a7e6b0937166a75692c2a42
> # first bad commit: [74fc50666e0af2514a7e6b0937166a75692c2a42] mmc: meson-gx: remove redundant mmc_request_done() call from irq context
> -------------------------------------------------------------------------------
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#47481): https://groups.io/g/kernelci-results/message/47481
> Mute This Topic: https://groups.io/mt/101996911/1131744
> Group Owner: kernelci-results+owner@xxxxxxxxx
> Unsubscribe: https://groups.io/g/kernelci-results/unsub [broonie@xxxxxxxxxx]
> -=-=-=-=-=-=-=-=-=-=-=-
> 
> 

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux