From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LCaiw-0004S2-N5 for qemu-devel@nongnu.org; Tue, 16 Dec 2008 09:16:34 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LCaiu-0004Rf-L9 for qemu-devel@nongnu.org; Tue, 16 Dec 2008 09:16:33 -0500 Received: from [199.232.76.173] (port=48322 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LCaiu-0004Rb-Gh for qemu-devel@nongnu.org; Tue, 16 Dec 2008 09:16:32 -0500 Received: from outbound-sin.frontbridge.com ([207.46.51.80]:14017 helo=SG2EHSOBE002.bigfish.com) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_ARCFOUR_MD5:16) (Exim 4.60) (envelope-from ) id 1LCait-00063t-SJ for qemu-devel@nongnu.org; Tue, 16 Dec 2008 09:16:32 -0500 Message-ID: <4947B863.1040909@amd.com> Date: Tue, 16 Dec 2008 15:17:07 +0100 From: Andre Przywara MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020004090401070305080502" Subject: [Qemu-devel] [PATCH 4/8] v2: extend parser to parse pin: option Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org, Avi Kivity --------------020004090401070305080502 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Signed-off-by: Andre Przywara -- Andre Przywara AMD-Operating System Research Center (OSRC), Dresden, Germany Tel: +49 351 277-84917 ----to satisfy European Law for business letters: AMD Saxony Limited Liability Company & Co. KG, Wilschdorfer Landstr. 101, 01109 Dresden, Germany Register Court Dresden: HRA 4896, General Partner authorized to represent: AMD Saxony LLC (Wilmington, Delaware, US) General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy --------------020004090401070305080502 Content-Type: text/x-patch; name="qemunuma_v2_cmdline_pin.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="qemunuma_v2_cmdline_pin.patch" # HG changeset patch # User Andre Przywara # Date 1229432330 -3600 # Node ID 28e2cf1452bacb7c8fca7154cc259769bd9df79e # Parent c966a24fc826ccf77a698492003faeab87f0f9e5 add pin option to -numa cmdline parser diff -r c966a24fc826 -r 28e2cf1452ba sysemu.h --- a/sysemu.h Tue Dec 16 13:51:18 2008 +0100 +++ b/sysemu.h Tue Dec 16 13:58:50 2008 +0100 @@ -97,9 +97,10 @@ extern int numnumanodes; extern int numnumanodes; extern uint64_t node_mem[MAX_NODES]; extern uint64_t node_to_cpus[MAX_NODES]; - -int parse_numa_args (const char *opt, uint64_t *mems, - uint64_t *cpus, int maxentries, int expect_numnodes); +extern uint64_t hostnodes[MAX_NODES]; + +int parse_numa_args(const char *opt, uint64_t *hostnodes, uint64_t *mems, + uint64_t *cpus, int maxentries, int expect_numnodes); extern int cursor_hide; extern int graphic_rotate; diff -r c966a24fc826 -r 28e2cf1452ba vl.c --- a/vl.c Tue Dec 16 13:51:18 2008 +0100 +++ b/vl.c Tue Dec 16 13:58:50 2008 +0100 @@ -225,6 +225,7 @@ int numnumanodes = 0; int numnumanodes = 0; uint64_t node_mem[MAX_NODES]; uint64_t node_to_cpus[MAX_NODES]; +uint64_t hostnodes[MAX_NODES]; const char *vnc_display; int acpi_enabled = 1; int fd_bootchk = 1; @@ -4520,7 +4521,7 @@ static int parse_to_array(const char *ar return num; } -int parse_numa_args(const char *opt, uint64_t *mems, +int parse_numa_args(const char *opt, uint64_t *hostnodes, uint64_t *mems, uint64_t *cpus, int maxentries, int expect_numnodes) { const char *s; @@ -4547,7 +4548,10 @@ int num = 0; parse_to_array(val, mems, ';', maxentries, PARSE_FLAG_SUFFIX); } else if (!strcmp(s, "cpu") && cpus != NULL) { parse_to_array(val, cpus, ';', maxentries, PARSE_FLAG_BITMASK); + } else if (!strcmp(s, "pin") && hostnodes != NULL) { + parse_to_array(val, hostnodes, ';', maxentries, 0); } + } } free(arg); @@ -4657,6 +4661,7 @@ int main(int argc, char **argv, char **e for(i = 0; i < MAX_NODES; i++) { node_to_cpus[i] = 0; node_mem[i] = 0; + hostnodes[i] = (uint64_t)-1; } usb_devices_index = 0; @@ -5115,12 +5120,12 @@ int main(int argc, char **argv, char **e break; case QEMU_OPTION_numa: if (numnumanodes > 0) - parse_numa_args(optarg, node_mem, + parse_numa_args(optarg, hostnodes, node_mem, node_to_cpus, MAX_NODES, 0); else - numnumanodes = parse_numa_args(optarg, + numnumanodes = parse_numa_args(optarg, hostnodes, node_mem, node_to_cpus, MAX_NODES, 1); - numnumanodes = parse_numa_args(optarg, + numnumanodes = parse_numa_args(optarg, hostnodes, node_mem, node_to_cpus, MAX_NODES, 1); if (numnumanodes < 0) { fprintf(stderr, "Invalid number of NUMA nodes\n"); --------------020004090401070305080502--