From: Boris Ostrovsky <boris.ostrovsky@oracle.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: elena.ufimtseva@oracle.com, wei.liu2@citrix.com,
ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com,
andrew.cooper3@citrix.com, dario.faggioli@citrix.com,
ian.jackson@eu.citrix.com, xen-devel@lists.xen.org, keir@xen.org
Subject: Re: [PATCH v4 5/9] sysctl: Add sysctl interface for querying PCI topology
Date: Fri, 13 Mar 2015 12:35:21 -0400 [thread overview]
Message-ID: <550311C9.2090306@oracle.com> (raw)
In-Reply-To: <550318610200007800069E58@mail.emea.novell.com>
On 03/13/2015 12:03 PM, Jan Beulich wrote:
>>>> On 10.03.15 at 03:27, <boris.ostrovsky@oracle.com> wrote:
>> + case XEN_SYSCTL_pcitopoinfo:
>> + {
>> + xen_sysctl_pcitopoinfo_t *ti = &op->u.pcitopoinfo;
>> +
>> + if ( guest_handle_is_null(ti->devs) ||
>> + guest_handle_is_null(ti->nodes) ||
>> + (ti->first_dev > ti->num_devs) )
>> + {
>> + ret = -EINVAL;
>> + break;
>> + }
>> +
>> + for ( ; ti->first_dev < ti->num_devs; ti->first_dev++ )
>> + {
>> + physdev_pci_device_t dev;
>> + uint8_t node;
>> + struct pci_dev *pdev;
>> +
>> + if ( copy_from_guest_offset(&dev, ti->devs, ti->first_dev, 1) )
>> + {
>> + ret = -EFAULT;
>> + break;
>> + }
>> +
>> + spin_lock(&pcidevs_lock);
>> + pdev = pci_get_pdev(dev.seg, dev.bus, dev.devfn);
>> + if ( !pdev || (pdev->node == NUMA_NO_NODE) )
>> + node = XEN_INVALID_NODE_ID;
>> + else
>> + node = pdev->node;
>> + spin_unlock(&pcidevs_lock);
>> +
>> + if ( copy_to_guest_offset(ti->nodes, ti->first_dev, &node, 1) )
>> + {
>> + ret = -EFAULT;
>> + break;
>> + }
>>
>> + if ( hypercall_preempt_check() )
>> + break;
>> + }
>> +
>> + if ( !ret )
>> + {
>> + ti->first_dev++;
> This is correct in the preempt case, but it seems wrong to me in the
> completely-done one. Perhaps it would be better to put the
> increment right before the preempt check?
Callers are really not supposed to use this field as it is useless as
output.
But for consistency (and to make this look more natural) --- yes, moving it
to the loop above (which will become a 'while') would be better.
-boris
next prev parent reply other threads:[~2015-03-13 16:35 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-10 2:27 [PATCH v4 0/9] Display IO topology when PXM data is available (plus some cleanup) Boris Ostrovsky
2015-03-10 2:27 ` [PATCH v4 1/9] numa: __node_distance() should return u8 Boris Ostrovsky
2015-03-10 11:53 ` Andrew Cooper
2015-03-10 13:49 ` Boris Ostrovsky
2015-03-10 2:27 ` [PATCH v4 2/9] pci: Stash device's PXM information in struct pci_dev Boris Ostrovsky
2015-03-13 16:15 ` Jan Beulich
2015-03-10 2:27 ` [PATCH v4 3/9] sysctl: Make XEN_SYSCTL_topologyinfo sysctl a little more efficient Boris Ostrovsky
2015-03-10 14:29 ` Andrew Cooper
2015-03-10 15:22 ` Boris Ostrovsky
2015-03-11 11:04 ` Ian Campbell
2015-03-11 12:02 ` Boris Ostrovsky
2015-03-11 12:24 ` Ian Campbell
2015-03-13 15:51 ` Jan Beulich
2015-03-10 2:27 ` [PATCH v4 4/9] sysctl: Make XEN_SYSCTL_numainfo " Boris Ostrovsky
2015-03-10 14:34 ` Andrew Cooper
2015-03-11 11:06 ` Ian Campbell
2015-03-13 15:55 ` Jan Beulich
2015-03-10 2:27 ` [PATCH v4 5/9] sysctl: Add sysctl interface for querying PCI topology Boris Ostrovsky
2015-03-10 14:54 ` Andrew Cooper
2015-03-13 16:03 ` Jan Beulich
2015-03-13 16:35 ` Boris Ostrovsky [this message]
2015-03-10 2:27 ` [PATCH v4 6/9] sysctl: Update sysctl version to 0x0000000C Boris Ostrovsky
2015-03-10 2:27 ` [PATCH v4 7/9] libxl/libxc: Move libxl_get_cpu_topology()'s hypercall buffer management to libxc Boris Ostrovsky
2015-03-10 13:40 ` Dario Faggioli
2015-03-11 11:07 ` Ian Campbell
2015-03-10 2:27 ` [PATCH v4 8/9] libxl/libxc: Move libxl_get_numainfo()'s " Boris Ostrovsky
2015-03-10 13:44 ` Dario Faggioli
2015-03-11 11:08 ` Ian Campbell
2015-03-10 2:27 ` [PATCH v4 9/9] libxl: Add interface for querying hypervisor about PCI topology Boris Ostrovsky
2015-03-10 13:51 ` Dario Faggioli
2015-03-11 11:10 ` Ian Campbell
2015-03-10 8:20 ` [PATCH v4 0/9] Display IO topology when PXM data is available (plus some cleanup) Jan Beulich
2015-03-10 13:39 ` Boris Ostrovsky
2015-03-10 13:47 ` Jan Beulich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=550311C9.2090306@oracle.com \
--to=boris.ostrovsky@oracle.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=dario.faggioli@citrix.com \
--cc=elena.ufimtseva@oracle.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=keir@xen.org \
--cc=stefano.stabellini@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.