Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp4618197rwb; Mon, 21 Nov 2022 09:40:17 -0800 (PST) X-Google-Smtp-Source: AA0mqf4sGunT4q8CvTCkfK5aX5wm9YCtEffyEW3EMqPChfmG92Ne2AVEcnvrP4tOcDd0IqjJmHsH X-Received: by 2002:a63:f254:0:b0:456:4f9a:fbb6 with SMTP id d20-20020a63f254000000b004564f9afbb6mr2524977pgk.318.1669052417572; Mon, 21 Nov 2022 09:40:17 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1669052417; cv=pass; d=google.com; s=arc-20160816; b=Ep/REzlMU+Xw+g8kgJPv6av11k3TH5e0YC5tpiE6wbKPUXCRSaPCJzaJeelhxg+/IQ sg/fgfG0vY/M5zCZ9JM0OIn7ew12vprTyFkn5qIdQ9f+REUYJ0a2p2P3JUZDHgLNg4aF JV4ibJXtayd4M9lDzpozf3fvRfP4VkxrkV0EgbT5ZjK1fZTB5ZncgYFXXzSx320XayG7 ALX6TwEB/pGLgAfYjKJZwqmMYmgpSUmrEoPWhMEgUuTJUZkBf25PcqLB+vbKsprXGj1g CukS6FnChe9KXa4BFDx/CRr/ORIFuKwRg6Yu4Okdee7mqmpfoDdzMVui5F+Y97Zv1nPy TDVQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:in-reply-to:content-disposition :references:message-id:subject:cc:to:from:date:dkim-signature; bh=HlutBJxvlvzHUj8gwPKI9qiwRfiZV9chrM/fPFsNBfo=; b=zcsIOkJ+acqUUD84RpgXxvJTZQV3YnmcMoh6EEMla5D7h6IIe4L2u+3r5xpEE6izc0 XArnaDU9+vRUGPpCY7Ek5Tpn+olXrDt5j1iTXFA2eecrCtnxzUuArpI7lmkg7X8Jar+7 LOcey3cbSDyb0KxnBSdbdIyd/DULqIRUp4Rm/gtV0n6ajmNTnycXHPg0iYWkUY1v7TRJ TaQ9k5zLjYrMSyRiy/v5C+dVifjeZKh2oS3qljyV5zWs5PlRluMaJvLr81YISAAEiD5R t3maIHa6vbFE7f5ALW2eZFL3PYBJcu2e8VHvxV0W3hcYsDbAxSI+OA73magoBJXHlk7a Rr5Q== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=XuBK7axY; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id rj5-20020a17090b3e8500b001fe41707a2esi16858338pjb.90.2022.11.21.09.40.06; Mon, 21 Nov 2022 09:40:17 -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; dkim=pass header.i=@Nvidia.com header.s=selector2 header.b=XuBK7axY; arc=pass (i=1 spf=pass spfdomain=nvidia.com dkim=pass dkdomain=nvidia.com dmarc=pass fromdomain=nvidia.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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231330AbiKURVs (ORCPT + 92 others); Mon, 21 Nov 2022 12:21:48 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41168 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231388AbiKURVO (ORCPT ); Mon, 21 Nov 2022 12:21:14 -0500 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2061.outbound.protection.outlook.com [40.107.92.61]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 03DBBD29B6; Mon, 21 Nov 2022 09:20:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FhCWPS4BxB5NjgQJVET9e+2twuMC7fcE9A3TlWgZH5tkRtnFMZLybtxkn1S+4xSUeUeEVyVPHka8kXmJS0kuUQxDL1Rqp0i0vg44GmbwSn+7K59FO22amQ2IVsEWIntTgcxxLlLMuUWEAFnI8Ghh7YHtNi1dJ2+RLWLiiPcGBQ0qzzZEv/Y/scrKbLQL2q1nLxlR2UKBHyX+z81h1M14h2c4rtSwmdn9qhxWWGavgkOYDakE8nyFoWcsDI8Av0L7KgXq6Fy8yramGq5UBAkIqQInbi+cPA2uo4AbdCwNvA6vD/CM7xtJA7auE6LZhZcN7cQ4RSNn3uTFOGQWeoncMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HlutBJxvlvzHUj8gwPKI9qiwRfiZV9chrM/fPFsNBfo=; b=EovD/gJj4VuB+zAlLsaw8bwa0/Qn3xesfsQMjRC9yGwLOeSIPt7fXRcZd1M0abck7p3ko/CfdPG5Zs5CXalysAbax4tmAUxTUnoBMrbYUQoYlKWd4/7JGVCqNrmZqj+icZFAnw80ArmiNAwol67htwhBybGcomr0+4olwR7pCrrnQpcw5Sn1liYLuO9/LCl1tPzkOhTNCoh2BjIoNms41EQyzLHVYFj+yvSkiP6B9Vp/Mx0XtREr2qa2XO/FJviZ8/aexc8ejvUzw1qMZSsVoT9yHw6grCIQ+RzaNbn1TNBYBL+EneMtPTntUW+NzzSlQNXGiniebU8TCJkzs16wTQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HlutBJxvlvzHUj8gwPKI9qiwRfiZV9chrM/fPFsNBfo=; b=XuBK7axY2RYS7806cpk6eT4skiYZtEwjV/F+rTvIna8kK860zAKF/Xe2lTywUX19aNjv2pAJO21GtXiy+/zmhaoE/CP+LVySMaVnXoFLxQLso2P6DCfaksoFnvdruiZP+D+PAieD129yWTe3vQjd9gU+DxtkcC6DDt8PlTOFShRL0RIaMdnjV5MdDPxUOXpU7wUaPN/HR8dqA7FwrZTdmkO+G4Is48iceUdttU602jQfIEynoLLgcMN9SRntpxpFxNUh9S5a1YYNGTMEP3bAHX2jWSLdBJKSn0gXN3Hm5xejamZEtGQ6WxLiBnAcDtf/YUx4+lsYBGl/s0FU1/y4XA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) by DM6PR12MB4219.namprd12.prod.outlook.com (2603:10b6:5:217::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.15; Mon, 21 Nov 2022 17:20:22 +0000 Received: from LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::f8b0:df13:5f8d:12a]) by LV2PR12MB5869.namprd12.prod.outlook.com ([fe80::f8b0:df13:5f8d:12a%9]) with mapi id 15.20.5834.011; Mon, 21 Nov 2022 17:20:21 +0000 Date: Mon, 21 Nov 2022 13:20:20 -0400 From: Jason Gunthorpe To: Thomas Gleixner Cc: LKML , x86@kernel.org, Joerg Roedel , Will Deacon , linux-pci@vger.kernel.org, Bjorn Helgaas , Lorenzo Pieralisi , Marc Zyngier , Greg Kroah-Hartman , Dave Jiang , Alex Williamson , Kevin Tian , Dan Williams , Logan Gunthorpe , Ashok Raj , Jon Mason , Allen Hubbe , "Ahmed S. Darwish" , Reinette Chatre Subject: Re: [patch 19/33] genirq/msi: Provide msi_desc::msi_data Message-ID: References: <20221111133158.196269823@linutronix.de> <20221111135206.346985384@linutronix.de> <871qpzkj9k.ffs@tglx> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <871qpzkj9k.ffs@tglx> X-ClientProxiedBy: BL1PR13CA0105.namprd13.prod.outlook.com (2603:10b6:208:2b9::20) To LV2PR12MB5869.namprd12.prod.outlook.com (2603:10b6:408:176::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: LV2PR12MB5869:EE_|DM6PR12MB4219:EE_ X-MS-Office365-Filtering-Correlation-Id: cf30c9a6-8a13-41f9-fee1-08dacbe4ab89 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Y5H8OOV8XBWGT2xA5E2EPmRy4ZgiiARRBO55FV598UFeBW04aEw4gy10cY2v4zA3WvegUoeerIPuduSsinfLIZe6cN4c9SyrQWT1Wm7CXOdb3jcocVjgGTUpdJ0Ee5M3JtVLkte6t+mOnq6uPmCL0WtgXKfCc+9EIC2DZ/GjKLVaj8pYMhrNHJs2Yb7cs/rzAiBpxunvHEnbAvLqNb8wY2CsYZNfMxWfjaAf9i07hSvaKJpJ1cyu4gxpZTZ4lxBvqQou63ubXt/AXpADLhiRmrAAMDlt1/raubnn/c4UuclEc4DcKsJ2L7SEYd8m7DdSJhG1YxBbTLDCvcS2kbu33nflTRPAN9948yU59cUqEiTuZtd3gotoFi5ZNIdx7yNFi60Ta9WshVWfO5ZwZiii0l4bLpKdlfpHFNupUcwKGJwVElUY1Sf47sWgfu88SRppXsRT37vRSI0mMa1CaSEJIQUSHNQcI/kBM8U0tkWkPsDFoA49dCbuMKL+pr0dB2sXPEJQnL3s37ZMxs9toJImL7kMf9f4ywTR/IqFFT8diFmblci4LM0iOvo3NQANRZbOvRXKSiTLDy6w85KGdPCY80wQDVwHO3VP0Yq4pQOQCErCUJLmqR8TS7Gl+5XiIe/K X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:LV2PR12MB5869.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(4636009)(396003)(136003)(366004)(376002)(39860400002)(346002)(451199015)(478600001)(6486002)(66899015)(66556008)(36756003)(66946007)(6512007)(41300700001)(8676002)(66476007)(4326008)(8936002)(186003)(2616005)(26005)(7416002)(5660300002)(316002)(6506007)(54906003)(6916009)(83380400001)(2906002)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9SxHW9m1aDe5STSjxD06eugs9Tf5VJWkZZAUgZrHXSHuB7dfQlUguN+URS/z?= =?us-ascii?Q?o/vVNscCeK4ia5CtdC4gvqUFZr6JaW6p3Z3UDZ+v8egxi9foEwoq+K6kskkI?= =?us-ascii?Q?NHUQLUNiczJrXn8nXAeGcX3CFZwwTJ7v31AiVy0fhc3WfuF1W4cl0tNEY0sI?= =?us-ascii?Q?hA46mgiWr2MDdw5YL6NtKvFXWer6JxZBXFL80HBsIcp6VL8rq6bkHqBz4d5T?= =?us-ascii?Q?dIE6ypOvwC8rJ89fa7H94j7H021xg6JmAbX83/+tx83/Sy0qM5S4flfvzKd7?= =?us-ascii?Q?Jo/T0FYZT6vkloVK1lEkDejKJE3mx7PP5jMQlneD3z9vcajEaJWs96gEqxHn?= =?us-ascii?Q?+O6Ri6Dj3ouhdd0hbOB5jF/0IXkr6Gby2qK7V9Rx87bK/2EWJe7+8kiaoxF0?= =?us-ascii?Q?WkYtBWtd7xJreF99BeCSvmuQPU4mJ2wNrHFLHAioH4mmJvmZs3BKTCEDDm0r?= =?us-ascii?Q?KxNLSO3t88/vpud1jawn4ya8jdEEau/gH7uYiLx4U/S3fkSeYFw4maxm1ezt?= =?us-ascii?Q?6IOxWP8WV1xbNfbPTRqxvBLdv99KvFo4UolJaQ6pp9s+j5QUSRscUoWy9Ns3?= =?us-ascii?Q?hsm/UdQFXNE+OjT3jJrwWyWlNtVvj+Z8QOj9dYE8G1+P5Xpcyd7AKrQsbAiC?= =?us-ascii?Q?bqkUgTN3CGIipw401jnBgmKG0cvLWTpam92sZqXPhqHthtBvzvCiEJ60usYT?= =?us-ascii?Q?G/Z5U7X8jQ1qF59cmBmizbdYr8EdiLn0bK2eKpBQrvaZrrPx77wXrIoFj2AM?= =?us-ascii?Q?EZtgTbKU21dQd2DrqMyUKstFnNIOcZ7darXNBEAYXB3Z/d3K3UGIbTArX9LV?= =?us-ascii?Q?n5BpB9gHIJxRkPPko5tgBzUx3z8ZNzwG5KDwdj7XaVCByNFm0OzRVveVImI4?= =?us-ascii?Q?3o1kBsu500YykaZxh1dQWZxP5SZCCDI27CME5+udmbJYNQ8mPR00WywyLK3z?= =?us-ascii?Q?DeHdc0TcPxfA6ZLSTTtXHRnc8m9bUuf9MMV1KnEFdTPgTvxvxwQGxKREq/TM?= =?us-ascii?Q?N7PEFXCXz/n14GT2sGEYC19ewaB31XC4wzfZ+JqTbpCZHVPzL/R9ZWHYCKXC?= =?us-ascii?Q?RApgwmreiooHnxK5kBTz9juzdTmV1mRH5mbP6uoWXTWUoirTTMihUpnsPdQV?= =?us-ascii?Q?XcCphz7vYajBBkjvtof+5lIkr9m4RDkum7epgkb2fy7hC+LD9fR2OVGSO+wm?= =?us-ascii?Q?R7XXP5kVGKZ8/FZSr/g6rbmt4/g6qEImzoQUf7eqJNaemfOxxxfD73TyNS9y?= =?us-ascii?Q?TRrE/ZmI+c+aredRflmkP7nNUx+u0rfh1Iwa/YoY4OcSWAHednXJ19Xo74vx?= =?us-ascii?Q?SKQkWIPVEL4McOhyuW4wIo0FDIz+3yrdM3Ke0SAWPn2ok4g+scLZNIbZQzq8?= =?us-ascii?Q?eno1K/0gWhv4SPJLDy3GHsIbQNLmVcn2oX2N//vXhqe36IbkNsSI0kS1oDNV?= =?us-ascii?Q?h+aBFt6vmSnKINelZwTknqmo0azEvAdQwS96kYI8R1HsmE+wiGhGqVy7e7Jf?= =?us-ascii?Q?4+Y1SxpNE+8cACPLbw5zymf6Jj9i0EG+yUCaylRfKSxYBCaLRwltATIgcnSV?= =?us-ascii?Q?UyUqRYP4jaR7ghhK1PM=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf30c9a6-8a13-41f9-fee1-08dacbe4ab89 X-MS-Exchange-CrossTenant-AuthSource: LV2PR12MB5869.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Nov 2022 17:20:21.8838 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ISAGbCI0Tr8TpbnVp5KoJDE8dJcBjodAh2+W/cxmcnIkBqUQXVS2jVMLGu86j2dB X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4219 X-Spam-Status: No, score=-1.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FORGED_SPF_HELO, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE autolearn=no 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 On Fri, Nov 18, 2022 at 11:08:55PM +0100, Thomas Gleixner wrote: > I looked into this and it gets ugly very fast. > > The above has two parts: > > iobase is domain specific and setup by the domain code > > cookie is per interrupt allocation. That's where the instance > queue or whatever connects to the domain. > > I can abuse the fields for PCI/MSI of course, but see below. I don't know that we need to store the second one forever in the desc. I was thinking this information is ephemeral, just used during alloc, and if the msi domain driver wishes some of it to be stored then it should do so. > Sure I could make both cookies plain u64, but I hate these forced type > casts and the above is simple to handle and understand. I guess, they aren't what I think of as cookies, so I wouldn't make them u64 in the first place. The argument to msi_domain_alloc_irq_at() ideally wants to be a per-domain-type struct so we can folow it around more cleanly. This is C so we have to type erase it as a void * through the core code, but OK. The second one is typically called "driver private data" in device driver subsystems that can't use container_of for some reason - just a chunk of data the driver can associate with a core owned struct. The usual pattern for driver private data is for the core to provide some kind of accessor void *get_priv() (think dev_get_drvdata()) or whatever. But I do understand your point about keeping the drivers away from things. Maybe some other pattern is better in this case. Jason