Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4840356imu; Tue, 29 Jan 2019 08:21:36 -0800 (PST) X-Google-Smtp-Source: ALg8bN5Uy2RmKhiRzGgN2ZeEWQrOQKBl2dq07ep2m4wVP2mO1wg+cPzmsZxfBOZQaEugQ1X/uyBm X-Received: by 2002:a63:e21:: with SMTP id d33mr24163215pgl.272.1548778896813; Tue, 29 Jan 2019 08:21:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1548778896; cv=none; d=google.com; s=arc-20160816; b=TmOLBHh0SRG6Z8L8897kFNPGn60n1nFevAhJ+fD/hTzh0ilPbNh3FT+r8MfmRAiRYU hML1816KwaGJknYsnjxPSMD73rd0y116sm3h8XEpuT05C4p8JiRE+qyEi50V5cpGsadE lc17T+KKJyDQbLhiGtug9ofHylaRhDyssQ1+VIKAF8dhiqv9SNtcPWlOeKPOrAkDQekZ KwpnNEFny6nusuRyUuRr/D/UzqWJ7j9VpMSULqePNlEK7XvrwmqoCFpQXTdy+W+ly42u ZhjHJraAD8+c8PZ3ZS/lhlklmlIe8eMG/kYYZHj1MQqZhYm07MMHXtWvHVIWLrzMQYHu APkg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :organization:autocrypt:openpgp:from:references:cc:to:subject; bh=/m/Df7dh08s3ThxVWVR0ensS2Qfaews9UBC+lBFwML4=; b=HcEbupW6rPnB08F1pPpRYs8i+/bXcYARabE3KsYKcU6W1hQ8NCZS5dsWx7rCq1dLcn 14hZ2oAtZnpE2kLBdRxuHBB51RcUhhtjpUZMOOjNC6lXSItf0mVmGfrhlqtawmfN3EDG 2Sr6rxnkzfZp3iELVS/bmfXXqoadsZCsVVIiPNReh9Hny/qZPXMsSEJzQd380mpUAbQx 7H4RY3Bs7VPAOc8Bgn8DswVPGiLQh6NlHfVvpEsS/7ITwbqRjfUWwq90mGz2m4+aZ3LW 9nk5y69E/HNH5i3SKZUiWO5wxoNnWn4sjtLiyO1gfc83WcE+MfMUChXBHGzccTOVVniv Cb2w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e68si36305558pfb.101.2019.01.29.08.21.21; Tue, 29 Jan 2019 08:21:36 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=ibm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727616AbfA2QVP (ORCPT + 99 others); Tue, 29 Jan 2019 11:21:15 -0500 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:40618 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725804AbfA2QVO (ORCPT ); Tue, 29 Jan 2019 11:21:14 -0500 Received: from pps.filterd (m0098410.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x0TGGEXb105059 for ; Tue, 29 Jan 2019 11:21:13 -0500 Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152]) by mx0a-001b2d01.pphosted.com with ESMTP id 2qasn8tej4-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Tue, 29 Jan 2019 11:21:13 -0500 Received: from localhost by e34.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 29 Jan 2019 16:21:12 -0000 Received: from b03cxnp07029.gho.boulder.ibm.com (9.17.130.16) by e34.co.us.ibm.com (192.168.1.134) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Tue, 29 Jan 2019 16:21:11 -0000 Received: from b03ledav005.gho.boulder.ibm.com (b03ledav005.gho.boulder.ibm.com [9.17.130.236]) by b03cxnp07029.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id x0TGLAiN10813440 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 29 Jan 2019 16:21:10 GMT Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2C311BE051; Tue, 29 Jan 2019 16:21:10 +0000 (GMT) Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9A338BE04F; Tue, 29 Jan 2019 16:21:09 +0000 (GMT) Received: from oc8380061452.ibm.com (unknown [9.53.179.224]) by b03ledav005.gho.boulder.ibm.com (Postfix) with ESMTP; Tue, 29 Jan 2019 16:21:09 +0000 (GMT) Subject: Re: [RFC 1/6] powerpc:/drc Define interface to acquire arch-specific drc info To: Michael Ellerman , Tyrel Datwyler , "open list:LINUX FOR POWERPC (32-BIT AND 64-BIT)" , linux-kernel@vger.kernel.org Cc: Juliet Kim , Thomas Falcon , Tyrel Datwyler , nathanl@linux.vnet.ibm.com References: <20181214204914.16435.59083.stgit@powerkvm6.aus.stglabs.ibm.com> <20181214204957.16435.29255.stgit@powerkvm6.aus.stglabs.ibm.com> <87a7jjstbu.fsf@concordia.ellerman.id.au> From: Michael Bringmann Openpgp: preference=signencrypt Autocrypt: addr=mwb@linux.vnet.ibm.com; prefer-encrypt=mutual; keydata= mQENBFcY7GcBCADzw3en+yzo9ASFGCfldVkIg95SAMPK0myXp2XJYET3zT45uBsX/uj9/2nA lBmXXeOSXnPfJ9V3vtiwcfATnWIsVt3tL6n1kqikzH9nXNxZT7MU/7gqzWZngMAWh/GJ9qyg DTOZdjsvdUNUWxtiLvBo7y+reA4HjlQhwhYxxvCpXBeRoF0qDWfQ8DkneemqINzDZPwSQ7zY t4F5iyN1I9GC5RNK8Y6jiKmm6bDkrrbtXPOtzXKs0J0FqWEIab/u3BDrRP3STDVPdXqViHua AjEzthQbGZm0VCxI4a7XjMi99g614/qDcXZCs00GLZ/VYIE8hB9C5Q+l66S60PLjRrxnABEB AAG0LU1pY2hhZWwgVy4gQnJpbmdtYW5uIDxtd2JAbGludXgudm5ldC5pYm0uY29tPokBOAQT AQIAIgUCVxjsZwIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQSEdag3dpuTI0NAf8 CKYTDKQLgOSjVrU2L5rM4lXaJRmQV6oidD3vIhKSnWRvPq9C29ifRG6ri20prTHAlc0vycgm 41HHg0y2vsGgNXGTWC2ObemoZBI7mySXe/7Tq5mD/semGzOp0YWZ7teqrkiSR8Bw0p+LdE7K QmT7tpjjvuhrtQ3RRojUYcuy1nWUsc4D+2cxsnZslsx84FUKxPbLagDgZmgBhUw/sUi40s6S AkdViVCVS0WANddLIpG0cfdsV0kCae/XdjK3mRK6drFKv1z+QFjvOhc8QIkkxFD0da9w3tJj oqnqHFV5gLcHO6/wizPx/NV90y6RngeBORkQiRFWxTXS4Oj9GVI/UrkBDQRXGOxnAQgAmJ5Y ikTWrMWPfiveUacETyEhWVl7u8UhZcx3yy2te8O0ay7t9fYcZgIEfQPPVVus89acIXlG3wYL DDPvb21OprLxi+ZJ2a0S5we+LcSWN1jByxJlbWBq+/LcMtGAOhNLpysY1gD0Y4UW/eKS+TFZ 562qKC3k1dBvnV9JXCgeS1taYFxRdVAn+2DwK3nuyG/DDq/XgJ5BtmyC3MMx8CiW3POj+O+l 6SedIeAfZlZ7/xhijx82g93h07VavUQRwMZgZFsqmuxBxVGiav2HB+dNvs3PFB087Pvc9OHe qhajPWOP/gNLMmvBvknn1NToM9a8/E8rzcIZXoYs4RggRRYh6wARAQABiQEfBBgBAgAJBQJX GOxnAhsMAAoJEEhHWoN3abky+RUH/jE08/r5QzaNKYeVhu0uVbgXu5fsxqr2cAxhf+KuwT3T efhEP2alarxzUZdEh4MsG6c+X2NYLbD3cryiXxVx/7kSAJEFQJfA5P06g8NLR25Qpq9BLsN7 ++dxQ+CLKzSEb1X24hYAJZpOhS8ev3ii+M/XIo+olDBKuTaTgB6elrg3CaxUsVgLBJ+jbRkW yQe2S5f/Ja1ThDpSSLLWLiLK/z7+gaqwhnwjQ8Z8Y9D2itJQcj4itHilwImsqwLG7SxzC0NX IQ5KaAFYdRcOgwR8VhhkOIVd70ObSZU+E4pTET1WDz4o65xZ89yfose1No0+r5ht/xWOOrh8 53/hcWvxHVs= Organization: IBM Linux Technology Center Date: Tue, 29 Jan 2019 10:21:09 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <87a7jjstbu.fsf@concordia.ellerman.id.au> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 x-cbid: 19012916-0016-0000-0000-0000097C4583 X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00010499; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000277; SDB=6.01153523; UDB=6.00601400; IPR=6.00933890; MB=3.00025341; MTD=3.00000008; XFM=3.00000015; UTC=2019-01-29 16:21:12 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 19012916-0017-0000-0000-000041F44938 Message-Id: X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-01-29_12:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1901290122 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 1/29/19 3:31 AM, Michael Ellerman wrote: > Tyrel Datwyler writes: >> On 12/14/2018 12:50 PM, Michael Bringmann wrote: >>> Define interface to acquire arch-specific drc info to match against >>> hotpluggable devices. The current implementation exposes several >>> pseries-specific dynamic memory properties in generic kernel code. >>> This patch set provides an interface to pull that code out of the >>> generic kernel. >>> >>> Signed-off-by: Michael Bringmann >>> --- >>> include/linux/topology.h | 9 +++++++++ >>> 1 file changed, 9 insertions(+) >>> >>> diff --git a/include/linux/topology.h b/include/linux/topology.h >>> index cb0775e..df97f5f 100644 >>> --- a/include/linux/topology.h >>> +++ b/include/linux/topology.h >>> @@ -44,6 +44,15 @@ >> >> As far as I know pseries is the only platform that uses DR connectors, and I >> highly doubt that any other powerpc platform or arch ever will. So, I'm not sure >> that this is really generic enough to belong in topology.h. > > Right. This does not belong in include/linux. > >> If anything I would >> suggest putting this in an include in arch/powerpc/include/ named something like >> drcinfo.h or pseries-drc.h. That will make it visible to modules like rpaphp >> that want/need to use this functionality. > > Yeah that would make more sense. If you see no objection to referencing a powerpc-specific function from the code ... > > Using "arch" in the name is wrong, it's pseries specific so > pseries_find_drc_match() would be more appropriate. > >>> +int arch_find_drc_match(struct device_node *dn, >>> + bool (*usercb)(struct device_node *dn, >>> + u32 drc_index, char *drc_name, >>> + char *drc_type, u32 drc_power_domain, >>> + void *data), >>> + char *opt_drc_type, char *opt_drc_name, >>> + bool match_drc_index, bool ck_php_type, >>> + void *data); > > This function signature is kind of insane. > > You end with calls like: > > + return arch_find_drc_match(dn, rpaphp_add_slot_cb, > + NULL, NULL, false, true, NULL); > > Which is impossible to parse. > > I feel like maybe this isn't the right level of abstraction. ... I had already been considering simplifying the interface for these calls to something like the following: int rpaphp_check_drc_props(struct device_node *dn, char *drc_name, char *drc_type) { return pseries_find_drc_match(dn, drc_type, drc_name); } ... int rpaphp_add_slot(struct device_node *dn) { if (!dn->name || strcmp(dn->name, "pci")) return 0; return pseries_add_drc_slot(dn, rpaphp_add_slot_cb); } ... Further details would be hidden within the pseries code. > > cheers Regards -- Michael W. Bringmann Linux Technology Center IBM Corporation Tie-Line 363-5196 External: (512) 286-5196 Cell: (512) 466-0650 mwb@linux.vnet.ibm.com