yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #78759
[Bug 1831758] [NEW] passthrough_whitelist is parsed per compute node per scheduling request even though the whitelist doesn't change between requests
Public bug reported:
During each scheduling request we build a HostState object per compute
node that is a candidate for scheduling:
https://github.com/openstack/nova/blob/9a7eee1592d84c732415da639c85ce4b262eefab/nova/scheduler/host_manager.py#L796
That eventually calls to _update_from_compute_node:
Which creates a fresh PciDeviceStats object:
https://github.com/openstack/nova/blob/9a7eee1592d84c732415da639c85ce4b262eefab/nova/scheduler/host_manager.py#L227
And that object will parse the [pci]/passthrough_whitelist config every
time it creates the PciDeviceStats object:
https://github.com/openstack/nova/blob/9a7eee1592d84c732415da639c85ce4b262eefab/nova/pci/stats.py#L66
That config option is not mutable so it's static per scheduling request
on the same host until the nova-scheduler service is restarted.
In a deployment that could return hundreds of allocation candidate
compute nodes (max_placement_results defaults to 1000) we could spend a
measurable amount of time parsing that same config option in aggregate
when the resulting value won't change.
** Affects: nova
Importance: Low
Status: Confirmed
** Tags: pci performance scheduler
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1831758
Title:
passthrough_whitelist is parsed per compute node per scheduling
request even though the whitelist doesn't change between requests
Status in OpenStack Compute (nova):
Confirmed
Bug description:
During each scheduling request we build a HostState object per compute
node that is a candidate for scheduling:
https://github.com/openstack/nova/blob/9a7eee1592d84c732415da639c85ce4b262eefab/nova/scheduler/host_manager.py#L796
That eventually calls to _update_from_compute_node:
Which creates a fresh PciDeviceStats object:
https://github.com/openstack/nova/blob/9a7eee1592d84c732415da639c85ce4b262eefab/nova/scheduler/host_manager.py#L227
And that object will parse the [pci]/passthrough_whitelist config
every time it creates the PciDeviceStats object:
https://github.com/openstack/nova/blob/9a7eee1592d84c732415da639c85ce4b262eefab/nova/pci/stats.py#L66
That config option is not mutable so it's static per scheduling
request on the same host until the nova-scheduler service is
restarted.
In a deployment that could return hundreds of allocation candidate
compute nodes (max_placement_results defaults to 1000) we could spend
a measurable amount of time parsing that same config option in
aggregate when the resulting value won't change.
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1831758/+subscriptions
Follow ups