Received: by 2002:ab2:1149:0:b0:1f3:1f8c:d0c6 with SMTP id z9csp5897lqz; Fri, 29 Mar 2024 07:01:57 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCX7/fhSPEsVdBLmb+x7uA1xkaHssFN89ynJy7gtGR+BDE6YWN+jRW/JNxrY7B4olsQbDiCbn8Mbe+UPnOSn6XWgHeVAvxoYrlgg1fevVQ== X-Google-Smtp-Source: AGHT+IFhcPoplPZZ8zI0VnOgQfbe3wLuJozbl9YEHrFRWInGmqsrJgz8Rew5NhDQlQ/8vwx8OlKR X-Received: by 2002:a17:906:e2d5:b0:a4e:3ed0:b085 with SMTP id gr21-20020a170906e2d500b00a4e3ed0b085mr563225ejb.30.1711720917200; Fri, 29 Mar 2024 07:01:57 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1711720917; cv=pass; d=google.com; s=arc-20160816; b=Hu/3kU61lSAPQABCr2JjN8a7cCsDmAy3Ci7Dsk558dxVZXLZDN5txWxMKCIDl1phva 1rpUW02jEorbCYrbkpIWnJBPyht0lbhcDBacFcldNUBiOFZxqF9WWYdejdnHuJj+BWS2 CqucZVev2SqHQRtPgM21GyYAQtknLryy5u1BtSOFQmxIdf9VArdqWhQo5ui0+guh1qSE sNih6DtgFreV+fJNZ66VQYgm+tB1Kx4IDlQ5nqk84R2Ivjr7kuO5n5f0IyqKjaZqrSYt v6jsubTvXqcHpcTboKGliPphh0m8aNHuyo5r1pqUs/tOa5FchupmG4snSeRVloz4Hy0s UXWA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:list-unsubscribe:list-subscribe :list-id:precedence:dkim-signature; bh=/J6gP3oWZ32r+n62bhK72ncVvhRHUkReUApoR4TBfF0=; fh=jNUcTWvDdSrhuPS2kRoeAvK0hVggL8h8hbyNTLo5VDY=; b=E5xOXx5XT0LtBm31ZcW35Wf0nK+rm0NC7JVMOMG0bkbdTjqskaIg281bO7rraWmdpX iinOd2kNWywra6Z8gGFMlwPm/OXWM2ljQAEb3RqhGZNfkqixlEmG1tG60MnmY1haPoaZ c9a7S4/F09Km3x6m3wnqz6qd/aP1+nPEdkYXQnE0HgFyYNIoaRwNmT51Fw4wABEuXCVu vVz6CvjEpaRARV7NF2QjSAwJiV2Gghsye/Nvc/RvctdWY9VSPDdDQb7vtM9LxhfoBwT9 hMf9Ya6Of2Dh+HCBFuc6p13d6geubQveaPHsqddvCj5AxlKThb9TbZz6vTEt8tZrvjTo ihwQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@bgdev-pl.20230601.gappssmtp.com header.s=20230601 header.b=D5nmmMwQ; arc=pass (i=1 dkim=pass dkdomain=bgdev-pl.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-124383-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-124383-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id p27-20020a170906229b00b00a4e05cf0054si1835424eja.313.2024.03.29.07.01.57 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 29 Mar 2024 07:01:57 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-124383-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@bgdev-pl.20230601.gappssmtp.com header.s=20230601 header.b=D5nmmMwQ; arc=pass (i=1 dkim=pass dkdomain=bgdev-pl.20230601.gappssmtp.com); spf=pass (google.com: domain of linux-kernel+bounces-124383-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-124383-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 8B4F61F23285 for ; Fri, 29 Mar 2024 10:22:26 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 18938535D0; Fri, 29 Mar 2024 10:22:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b="D5nmmMwQ" Received: from mail-lf1-f48.google.com (mail-lf1-f48.google.com [209.85.167.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 853A43D69 for ; Fri, 29 Mar 2024 10:22:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.167.48 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711707737; cv=none; b=fwLcQpnuT2fZ9uQY/8IEmYP+63GuaJ4EWte3mm4DepFOdGwXL/rCfnljUGm/KI5ZHfVj1MDtCGiAANZmpRxHj4GTd7mnM0iECDMY75dz9NSjCm/vznl4nwPY3kbTv5AbUZlQJ+1Avq09vj4QXAnAVnCinS08Tg1t6bMNkFOsO0o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711707737; c=relaxed/simple; bh=5iGLeKg1B+c+xy7usHfD7DuolFxdePCGQGv5moChJAs=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=POJdbvkQrbZRKOu3LArM2pvl2+ftUcOsKNLhZCXShH4jmKfb/iWRSJPCklgFiJAlCevBFWNPCX8yMQocxcvKdu8rUR6XzoIIPNXe+GP2imjpOUUM+sBkLAR+BFqNo96vEbmdmNo7I5P6waoKBveOT7s7Ws3jpAiYfi0FqcMHCGE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl; spf=none smtp.mailfrom=bgdev.pl; dkim=pass (2048-bit key) header.d=bgdev-pl.20230601.gappssmtp.com header.i=@bgdev-pl.20230601.gappssmtp.com header.b=D5nmmMwQ; arc=none smtp.client-ip=209.85.167.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=bgdev.pl Received: by mail-lf1-f48.google.com with SMTP id 2adb3069b0e04-513dc9d6938so2226138e87.2 for ; Fri, 29 Mar 2024 03:22:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20230601.gappssmtp.com; s=20230601; t=1711707733; x=1712312533; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=/J6gP3oWZ32r+n62bhK72ncVvhRHUkReUApoR4TBfF0=; b=D5nmmMwQBHIiDlqLVRDTEsQLdm1ly5ZHftIyHaPe8srZRdnuGX+n96g8iKxNVrUFeD 0g0R55AGwWIXOppIRnwfxG8n5FLVIWRTeHPOAhU7WmD6LCUDf37VdquWLcfTTf09e3pi YTXapUgA0utZLEpAzs2ol+4mKyjSA2FGcUtqSBHE3kST0wv0y0Mo/ShyZTBgi9OUZaN3 OZsjSFr3EY8qICdJq6zkAGq0W37g2CylDcFM+jbq0eN4X9lkeHLm5f0dqtDIFKygBnm1 RFyK/C0b2RTdWcErBeKUQl0KCj8hCa46piyyHkjYw4yW/NGQm+TZf1Rf6RuS5CqBqToc lVRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711707733; x=1712312533; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/J6gP3oWZ32r+n62bhK72ncVvhRHUkReUApoR4TBfF0=; b=MPNqtOgIzWoEb3vNBVG9FOVtD3JdOCf18epzzoGWKg+97eZOtwojcAQqQacCB8LLrI CC+Ff+9ytBi346n27vmsPYRvUApXw1P/cmBnZneTp4Qr66E5lpNEp+VDre/0iONbilrZ Jf0zmeQWmqQAnn6WWJWKx9VKqD9wUXyNtUjEV2Gho13ioDXNVwrwEnTTJ+sEGl9eVcx7 ls2DGN22tp8VFIxnfWFKJ25V0xZWUVfTwMn7CyV5QEidIDR47y7mwq8dvLyPTT5JYRvd spxkLfpJ5n3aMi61m3EM8ngvYiDeDtuNkKueSnbxVyjKr4aIlx6/fxqh+aTHUTq2WLtJ MdZQ== X-Forwarded-Encrypted: i=1; AJvYcCWGb5+DGadZ+qW4R4raELyqRJgGnNPvZKkl4CzYOi9T6p7+L+1tMqmjW+kTq21+r35Uk/4HAk575JldOL2qD6DHO0BDyyCPIvVcQQV7 X-Gm-Message-State: AOJu0YyXzsOx8r8xVPSwtuH0irU2ynPRdha278ZU9DlLrLUnSAMVh9LT pRyQDnyLFiBWCkNSZdAEAfrZnQz8ywk0u8FlWv865m8hzLmOxYsZTth/cQJLlTgBPfBHwEnokKX Ahg+5pQP+GcT9VnIF+aFRggOUvMOdyYcImN1kmQ== X-Received: by 2002:a05:6512:6cd:b0:513:5e6b:a191 with SMTP id u13-20020a05651206cd00b005135e6ba191mr1439757lff.50.1711707733433; Fri, 29 Mar 2024 03:22:13 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240325100359.17001-1-brgl@bgdev.pl> <56e1c63a-4c09-4d92-9ef2-aad5390879cc@gmail.com> In-Reply-To: From: Bartosz Golaszewski Date: Fri, 29 Mar 2024 11:22:02 +0100 Message-ID: Subject: Re: [PATCH v9 00/13] firmware: qcom: qseecom: convert to using the TZ allocator To: Maximilian Luz Cc: Andy Gross , Bjorn Andersson , Konrad Dybcio , Elliot Berman , Krzysztof Kozlowski , Guru Das Srinagesh , Andrew Halaney , Alex Elder , Srini Kandagatla , Arnd Bergmann , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@quicinc.com, Bartosz Golaszewski Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Mar 28, 2024 at 7:55=E2=80=AFPM Bartosz Golaszewski = wrote: > > On Thu, Mar 28, 2024 at 5:50=E2=80=AFPM Maximilian Luz wrote: > > > > If I understand correctly, it enters an atomic section in > > qcom_tzmem_alloc() and then tries to schedule somewhere down the line. > > So this shouldn't be qseecom specific. > > > > I should probably also say that I'm currently testing this on a patched > > v6.8 kernel, so there's a chance that it's my fault. However, as far as > > I understand, it enters an atomic section in qcom_tzmem_alloc() and the= n > > later tries to expand the pool memory with dma_alloc_coherent(). Which > > AFAIK is allowed to sleep with GFP_KERNEL (and I guess that that's the > > issue here). > > > > I've also tried the shmem allocator option, but that seems to get stuck > > quite early at boot, before I even have usb-serial access to get any > > logs. If I can find some more time, I'll try to see if I can get some > > useful output for that. > > > > Ah, I think it happens here: > > + guard(spinlock_irqsave)(&pool->lock); > + > +again: > + vaddr =3D gen_pool_alloc(pool->genpool, size); > + if (!vaddr) { > + if (qcom_tzmem_try_grow_pool(pool, size, gfp)) > + goto again; > > We were called with GFP_KERNEL so this is what we pass on to > qcom_tzmem_try_grow_pool() but we're now holding the spinlock. I need > to revisit it. Thanks for the catch! > > Bart Can you try the following tree? https://git.codelinaro.org/bartosz_golaszewski/linux.git topic/shm-bridge-v10 gen_pool_alloc() and gen_pool_add_virt() can be used without external serialization. We only really need to protect the list of areas in the pool when adding a new element. We could possibly even use list_add_tail_rcu() as it updates the pointers atomically and go lockless. Bart