Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp1036105ybz; Thu, 16 Apr 2020 01:22:54 -0700 (PDT) X-Google-Smtp-Source: APiQypJ8aYKETgSK0Vti8ySb40vutkxK/+qx4DeDZPgm1UAtc9t5mZqyd55B/IPteUhkQzvF6UR0 X-Received: by 2002:a17:906:9450:: with SMTP id z16mr8406053ejx.166.1587025373959; Thu, 16 Apr 2020 01:22:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1587025373; cv=none; d=google.com; s=arc-20160816; b=bh/2X83YVmjkG5QjjDw0Uns3tbGV61XORqd5SNPzXuuma3EBVYn/kNJ2qAbv6ImTQk fUYp25ukxrgSiyB7SWmxyZf1JwN8zHM6knnM7cpuj9U+s6MR3rxCXs3z5ek9aOpyQqD+ h6fRVvyIx7GXXzRjAc9MxqCXilpTkvzL5WLr2+HT8EyxxXUw+W+p4e9RX+incBYUe1pF OOgHHBcFNI4uf5ZVfEcib5oMeulCNRx49aelBiJgbCaG5Dny71HqTT0LKIjCBPBkUbIi Yk/QC77TdEZQS95a76t+pOH3ev2rfZItjp3X1QkblU2/iCHlMMd4mOFkV+ZzgOUw1h40 UI4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:dkim-signature; bh=W9MHtlxfWV5esFp8UKV1MC7UI06aVGBVOqmz4l0oTUE=; b=XJtkYIsVkkFzs37os8JG5Y5Kcp6FGMTal9cvP0o/roivaK/0YeYgPI+oFEYrRIkv1I k1c2qtQyKaAK3Th9J6PISOB7v9dhYT2AzN0/BuaIFCItFQxy9N2kDMXNJIXBqnAKGmIn Om1uU0tkQRL89CPqFgntOhaI94lOPA1sy9srUzqGLhXIzUdxNq9w3YjbWDhGul4p/tGQ LJkTZZ6rXJJ3NtHDvQh8nd/6P+bVmF5T3PZFgZwzgk7mzrYb7iQMTt/nOaH9imjhI6bU osXlOBMg2V4Jot99Hy92mqf9XSNjNNZJoM817zRTPSPlFZJQXdhaPy5x1StmLBVfKdT8 XeHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b="ekIM/u0N"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id p5si12224170edd.220.2020.04.16.01.22.30; Thu, 16 Apr 2020 01:22:53 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@gmail.com header.s=20161025 header.b="ekIM/u0N"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2441349AbgDPIVR (ORCPT + 99 others); Thu, 16 Apr 2020 04:21:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2441314AbgDPITo (ORCPT ); Thu, 16 Apr 2020 04:19:44 -0400 Received: from mail-lf1-x144.google.com (mail-lf1-x144.google.com [IPv6:2a00:1450:4864:20::144]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 40876C061A0C; Thu, 16 Apr 2020 01:19:40 -0700 (PDT) Received: by mail-lf1-x144.google.com with SMTP id x23so4921156lfq.1; Thu, 16 Apr 2020 01:19:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:in-reply-to:references:date:message-id :mime-version; bh=W9MHtlxfWV5esFp8UKV1MC7UI06aVGBVOqmz4l0oTUE=; b=ekIM/u0NoCzuOjB4d6swF8ik0SYVawZsVAjeK6ZOTzHDqRKmxUGGpbAQRb69YI57/7 YEqsZN10/mLKAn6BtkUdM1WK8dVWGAQdDpaQuO543EzMkkzJvviObNWiJ8/Ha/8HBkoy ZAENdBwsq9LFQ5Ptrb6TNeh0GMtga64a8+JGMRNFlajv7ScuXbjNvTJStjTztaBsiaaZ vChOMOsZys+sxL/SZpaBOCM58aOMNiPqHxYssLjPFvaVEhPC9dq9cIOv8j/6IrWjUQH1 P/qe5mJeR21JKRCD+xrzqOx5+hImvOv1sy2s2dtInXfyAh73EN9mdq1j4lbK+oKI4a9p OLGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:in-reply-to:references :date:message-id:mime-version; bh=W9MHtlxfWV5esFp8UKV1MC7UI06aVGBVOqmz4l0oTUE=; b=FxN9dw2mN7kgHf4h4QAslvVb9IinEeMXCfT3GoadnVZzHlE6C7e/nJBmvrqdSbV+sA R6I3FFFzeoaPDTsol0/6CoJ0XaP+DZrbVDGjlTOzV0toYsmtbeGrOmIckX8y/cVc4SY9 80bMDLynONX1q/t01hR+ETX1snbGWqRPEkaMihu4W7NG13RcJGmUJQgXjWtHlyn1xDcs kT4U2n3o0RBD01FflK81A75wK6aEAIqKZo3U6f4fUQvJm2d3u6RfrVEABCScRXvsiqKE YLm4mqJLrgvnoMBfPHcdRp7ST4yHpteSsS093bin8VNT4u+NwC1MSEjnbP+61VAAPoTN /jFA== X-Gm-Message-State: AGi0PubhyRio16Is1WvlSECSpLBQp8uIBOjtFvX8zZzYNY/CNYAvBq3b OtoI8yOdOuPqFnaZEUMTUxn8FvVBaU4= X-Received: by 2002:ac2:5192:: with SMTP id u18mr5335277lfi.114.1587025178168; Thu, 16 Apr 2020 01:19:38 -0700 (PDT) Received: from saruman (91-155-214-58.elisa-laajakaista.fi. [91.155.214.58]) by smtp.gmail.com with ESMTPSA id o25sm14233941lfg.41.2020.04.16.01.19.36 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 16 Apr 2020 01:19:37 -0700 (PDT) From: Felipe Balbi To: John Stultz Cc: Josh Gao , YongQin Liu , Anurag Kumar Vulisha , Yang Fei , Thinh Nguyen , Tejas Joglekar , Andrzej Pietrasiewicz , Jack Pham , Todd Kjos , Greg KH , Linux USB List , lkml Subject: Re: More dwc3 gadget issues with adb In-Reply-To: References: Date: Thu, 16 Apr 2020 11:19:27 +0300 Message-ID: <877dyfsv00.fsf@kernel.org> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, John Stultz writes: > Hey Felipe, > Last week or so, a change[1] in AOSP to adbd seemingly uncovered > another issue with dwc3 gadget scatter-gather support on HiKey960. > > Interestingly it doesn't seem to affect the Dragonboard 845c, which > uses the same dwc3 driver and has had its own issues in the past. > > The behavior is the same as we saw last time around with both devices. > After booting the device, running "adb logcat -d" (or really any adb > command that transfers more than a trivial amount of data) on the host > will result in the adb output seeming to stall. Any further adb > invocations to the device will hang indefinitely. > > I've captured trace events for before the change (works), after the > change (broken), and after the change with the sg_enabled flag turned > off (which works around the problem). > > Let me know if there is anything else useful for me to share. First the obvious questions: Which kernel version is this? What does "before" and "after" refer to in our traces? What are first working and first failing versions? Can you run git bisect? One thing I noticed is that we're missing a giveback on ep1out. Here's a working case: UsbFfs-worker-580 [002] d..1 66.704886: dwc3_alloc_request: ep1out:= req 0000000011c55648 length 0/0 zsI =3D=3D> 0 UsbFfs-worker-580 [002] d..2 66.704889: dwc3_ep_queue: ep1out: req = 0000000011c55648 length 0/16384 zsI =3D=3D> -115 UsbFfs-worker-580 [002] d..2 66.704892: dwc3_prepare_trb: ep1out: t= rb 000000003559c11c (E27:D7) buf 000000008843b000 size 16384 ctrl 00000819 = (HlcS:sC:normal) UsbFfs-worker-580 [002] d..2 66.704897: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705053: dwc3_event: event (00006084= ): ep1out: Transfer In Progress [0] (SIm) irq/65-dwc3-522 [000] d..1 66.705054: dwc3_complete_trb: ep1out: = trb 000000008c350fb3 (E27:D8) buf 0000000089d6b000 size 16360 ctrl 00000818= (hlcS:sC:normal) irq/65-dwc3-522 [000] d..1 66.705058: dwc3_gadget_giveback: ep1ou= t: req 0000000001b9ed3f length 24/16384 zsI =3D=3D> 0 kworker/u16:2-260 [001] .... 66.705097: dwc3_free_request: ep1out: = req 0000000001b9ed3f length 24/16384 zsI =3D=3D> 0 and the failure point: UsbFfs-worker-580 [002] d..1 66.705129: dwc3_alloc_request: ep1out:= req 0000000067a34de4 length 0/0 zsI =3D=3D> 0 UsbFfs-worker-580 [002] d..2 66.705131: dwc3_ep_queue: ep1out: req = 0000000067a34de4 length 0/16384 zsI =3D=3D> -115 UsbFfs-worker-580 [002] d..2 66.705134: dwc3_prepare_trb: ep1out: t= rb 00000000f3db4076 (E28:D8) buf 000000008843f000 size 16384 ctrl 00000819 = (HlcS:sC:normal) UsbFfs-worker-580 [002] d..2 66.705141: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705309: dwc3_event: event (00006084= ): ep1out: Transfer In Progress [0] (SIm) irq/65-dwc3-522 [000] d..1 66.705310: dwc3_complete_trb: ep1out: = trb 0000000092deef41 (E28:D9) buf 00000000ba8f1000 size 4072 ctrl 0000001c = (hlCS:sc:normal) irq/65-dwc3-522 [000] d..1 66.705318: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705323: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705329: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705334: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705339: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705344: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705349: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful irq/65-dwc3-522 [000] d..1 66.705354: dwc3_gadget_ep_cmd: ep1out:= cmd 'Update Transfer' [20007] params 00000000 00000000 00000000 --> status= : Successful One interesting thing is that TRB addresses are "odd". I can't find a proper lifetime for these TRBs. Do you have IOMMU enabled? Can you run without it? For example, nowhere in the log can I find the place where trb 0000000092deef41 was first enqueue. I'm assuming the log to be ordered, which means that trb is the same as 00000000f3db4076. But why are the addresses different? Another weird thing is that even though we CHN bit being set in 0000000092deef41, we don't see where the second trb (the one its chained to) was prepared. It seems like it was *never* prepared, what gives? =2D-=20 balbi --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEElLzh7wn96CXwjh2IzL64meEamQYFAl6YFQ8ACgkQzL64meEa mQaIqxAA2vxUnm+Omf8K/N5jvZbIQHW5HcTdVXcznXApCA73acgUGZ6H599/XB2V LXwkb//ezD8QtY84tC12cDEXSqh2WrwLKyXef8Zhr8aeJ8YPyWIYr50Jx6qzAS2e PU9KZFtmU3SXhlImihGeWM1eYV0ojhYOpCNUNEWqQ3Hwlmcp5RzINUPCSqYNUVdz rLZsRllXS/68OEkQarvCRc87b/dJok3k2czcETy+6R69weLeHkJ1gUr+MRVoOUf7 boLSjJX8nrb1xweRmSqD27gXmPw+5yAm+OD++KSM9aVDh67i0VHq1pF/X11ULVxt 03hb6VcEkjUzFznfJrRD7ye7EuXiUwSxJwX+i6bRA0bBU83SoX7Kwb3i8gI3x9vT l3HvhaL9fUMEnacupHYLzKtHxRHFG0GyBBnbP6KGOgBQutbwQzX/IYWR8mdl4AmO myTiwgMCgQR54IhchmmrnCBeVvWTA9cyov983sjwhlkZt72+Y/TuLJGU73qWCamb babTgDZo1FRaRN2SawTJw/qpLGqGM9fOuCX8FW8qTlyG/rPyg0FRgjLMuO3v0F2X D0hbkSrlpKkCa8i4vdEEWIF9fw4BaYsyXCUCJIUEP3QOpMkIfNC+j8WRAcIdUsDR GWEK8eaPF4mJ07GBpPt8stsZeTgE1ADys75u/184GrMm5zkKUto= =mTHT -----END PGP SIGNATURE----- --=-=-=--