From patchwork Mon Jul 29 12:12:00 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Andrew Cooper X-Patchwork-Id: 11063717 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id C97C3112C for ; Mon, 29 Jul 2019 12:13:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BA738287E5 for ; Mon, 29 Jul 2019 12:13:29 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AE91E287DB; Mon, 29 Jul 2019 12:13:29 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3F37126D05 for ; Mon, 29 Jul 2019 12:13:29 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hs4Vh-0006dF-Pn; Mon, 29 Jul 2019 12:12:13 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hs4Vg-0006cc-Vw for xen-devel@lists.xenproject.org; Mon, 29 Jul 2019 12:12:13 +0000 X-Inumbo-ID: 185cb658-b1fa-11e9-8980-bc764e045a96 Received: from esa6.hc3370-68.iphmx.com (unknown [216.71.155.175]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 185cb658-b1fa-11e9-8980-bc764e045a96; Mon, 29 Jul 2019 12:12:12 +0000 (UTC) Authentication-Results: esa6.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none; spf=None smtp.pra=andrew.cooper3@citrix.com; spf=Pass smtp.mailfrom=Andrew.Cooper3@citrix.com; spf=None smtp.helo=postmaster@mail.citrix.com Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of andrew.cooper3@citrix.com) identity=pra; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="andrew.cooper3@citrix.com"; x-conformance=sidf_compatible Received-SPF: Pass (esa6.hc3370-68.iphmx.com: domain of Andrew.Cooper3@citrix.com designates 162.221.158.21 as permitted sender) identity=mailfrom; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="Andrew.Cooper3@citrix.com"; x-conformance=sidf_compatible; x-record-type="v=spf1"; x-record-text="v=spf1 ip4:209.167.231.154 ip4:178.63.86.133 ip4:195.66.111.40/30 ip4:85.115.9.32/28 ip4:199.102.83.4 ip4:192.28.146.160 ip4:192.28.146.107 ip4:216.52.6.88 ip4:216.52.6.188 ip4:162.221.158.21 ip4:162.221.156.83 ~all" Received-SPF: None (esa6.hc3370-68.iphmx.com: no sender authenticity information available from domain of postmaster@mail.citrix.com) identity=helo; client-ip=162.221.158.21; receiver=esa6.hc3370-68.iphmx.com; envelope-from="Andrew.Cooper3@citrix.com"; x-sender="postmaster@mail.citrix.com"; x-conformance=sidf_compatible IronPort-SDR: 5QZiSNMik7uRCxlEeakZ1vL297kyK81835L9fPWpvLzcdvePxl5X3If1poscTHuzkrJsUzbEMr NcJu7oUn3vXinvH09IEq3CvDy+rBA6xCJ2BSDfPlA26tKOfcp4ZZseklU+A36Z6/2YIH7KlOl6 pQQkzCLs2jkJTnHbG+XWBWnFkwr4xsUxjLxgGrvpZWoFnhrUNAjAhs43Ijrd/EXJatnB12CMj3 wvcPFEdcLbeWuZiexO1OUvu5gHionW3RPTUnOKlik0HwW5dtXwKsO/KTPjxiTfUTYf/xDOUu5Y BwU= X-SBRS: 2.7 X-MesageID: 3672665 X-Ironport-Server: esa6.hc3370-68.iphmx.com X-Remote-IP: 162.221.158.21 X-Policy: $RELAYED X-IronPort-AV: E=Sophos;i="5.64,322,1559534400"; d="scan'208";a="3672665" From: Andrew Cooper To: Xen-devel Date: Mon, 29 Jul 2019 13:12:00 +0100 Message-ID: <20190729121204.13559-7-andrew.cooper3@citrix.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190729121204.13559-1-andrew.cooper3@citrix.com> References: <20190729121204.13559-1-andrew.cooper3@citrix.com> MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v3 06/10] xen/nodemask: Introduce a NODEMASK_PR() wrapper for printing X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Stefano Stabellini , Wei Liu , Andrew Cooper , Julien Grall , Jan Beulich , Volodymyr Babchuk , =?utf-8?q?Roger_Pau_Monn?= =?utf-8?q?=C3=A9?= Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" X-Virus-Scanned: ClamAV using ClamSMTP Rework nodes_addr() into nodemask_bits() and change the indirection to match its cpumask_bits() counterpart, and update the caller. Use NODEMASK_PR() to fix up one opencoded access into nodemask.bits in dump_domains(). Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- CC: Jan Beulich CC: Wei Liu CC: Roger Pau Monné CC: Stefano Stabellini CC: Julien Grall CC: Volodymyr Babchuk v3: * New --- xen/common/domctl.c | 4 ++-- xen/common/keyhandler.c | 2 +- xen/include/xen/nodemask.h | 13 ++++++++++--- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/xen/common/domctl.c b/xen/common/domctl.c index fa260ce5fb..9ed9f57f0d 100644 --- a/xen/common/domctl.c +++ b/xen/common/domctl.c @@ -123,14 +123,14 @@ int xenctl_bitmap_to_cpumask(cpumask_var_t *cpumask, static int nodemask_to_xenctl_bitmap(struct xenctl_bitmap *xenctl_nodemap, const nodemask_t *nodemask) { - return bitmap_to_xenctl_bitmap(xenctl_nodemap, nodes_addr(*nodemask), + return bitmap_to_xenctl_bitmap(xenctl_nodemap, nodemask_bits(nodemask), MAX_NUMNODES); } static int xenctl_bitmap_to_nodemask(nodemask_t *nodemask, const struct xenctl_bitmap *xenctl_nodemap) { - return xenctl_bitmap_to_bitmap(nodes_addr(*nodemask), xenctl_nodemap, + return xenctl_bitmap_to_bitmap(nodemask_bits(nodemask), xenctl_nodemap, MAX_NUMNODES); } diff --git a/xen/common/keyhandler.c b/xen/common/keyhandler.c index a5e95e2fe9..57b360ee4b 100644 --- a/xen/common/keyhandler.c +++ b/xen/common/keyhandler.c @@ -293,7 +293,7 @@ static void dump_domains(unsigned char key) dump_pageframe_info(d); printk("NODE affinity for domain %d: [%*pbl]\n", - d->domain_id, MAX_NUMNODES, d->node_affinity.bits); + d->domain_id, NODEMASK_PR(&d->node_affinity)); printk("VCPU information and callbacks for domain %u:\n", d->domain_id); diff --git a/xen/include/xen/nodemask.h b/xen/include/xen/nodemask.h index 7ab8b794c6..1dd6c7458e 100644 --- a/xen/include/xen/nodemask.h +++ b/xen/include/xen/nodemask.h @@ -39,7 +39,7 @@ * nodemask_t nodemask_of_node(node) Return nodemask with bit 'node' set * NODE_MASK_ALL Initializer - all bits set * NODE_MASK_NONE Initializer - no bits set - * unsigned long *nodes_addr(mask) Array of unsigned long's in mask + * unsigned long *nodemask_bits(mask) Array of unsigned long's in mask * * for_each_node_mask(node, mask) for-loop node over mask * @@ -58,6 +58,15 @@ #include typedef struct { DECLARE_BITMAP(bits, MAX_NUMNODES); } nodemask_t; + +/* + * printf arguments for a nodemask. Shorthand for using '%*pb[l]' when + * printing a nodemask. + */ +#define NODEMASK_PR(src) MAX_NUMNODES, nodemask_bits(src) + +#define nodemask_bits(src) ((src)->bits) + extern nodemask_t _unused_nodemask_arg_; #define node_set(node, dst) __node_set((node), &(dst)) @@ -250,8 +259,6 @@ static inline int __cycle_node(int n, const nodemask_t *maskp, int nbits) [0 ... BITS_TO_LONGS(MAX_NUMNODES)-1] = 0UL \ } }) -#define nodes_addr(src) ((src).bits) - #if MAX_NUMNODES > 1 #define for_each_node_mask(node, mask) \ for ((node) = first_node(mask); \