Bug 1240494
Summary: | The system won't bypass the cache even enable the auto_dump_bypass_cache in qemu.conf | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Dan Zheng <dzheng> | ||||
Component: | libvirt | Assignee: | Andrea Bolognani <abologna> | ||||
Status: | CLOSED NOTABUG | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 7.2 | CC: | abologna, dyuan, gsun, lhuang, mzhan, ngu, rbalakri | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | ppc64le | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | Doc Type: | If docs needed, set a value | |||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2017-04-07 10:42:14 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Description
Dan Zheng
2015-07-07 06:14:46 UTC
Created attachment 1269673 [details]
Program showing the effect of O_DIRECT on /proc/*/fdinfo/*
(In reply to Dan Zheng from comment #0) [...] > # cat /proc/$(lsof -w /var/lib/libvirt/qemu/dump/*|awk '/libvirt_i/{print > $2}')/fdinfo/*1* > pos: 3822059520 > flags: 0600001 > ... > pos: 3968860160 > flags: 0600001 > ... > pos: 4107272192 > flags: 0600001 > > Actual result: > In the flags in step 6 output, the third value is '0' which stands for > 'auto_dump_bypass_cache' is disabled. The system did not bypass the cache > for auto dump with auto_dump_bypass_cache enabled. > > Expect result: > In the flags in step 6 output, the third value is '4' which stands for > 'auto_dump_bypass_cache' is enabled. The system should bypass the cache for > auto dump with auto_dump_bypass_cache enabled. The testing methodology is not entirely correct because it doesn't account for the fact that the concrete value for eg. O_DIRECT can be different depending on the architecture. I've attached a simple C program that demostrates the issue: when run on an x86_64 host, it will print $ ./direct whatever Without O_DIRECT: pos: 0 flags: 0100001 mnt_id: 62 With O_DIRECT: pos: 0 flags: 0140001 mnt_id: 62 whereas on a ppc64le or aarch64 host it will print $ ./direct whatever Without O_DIRECT: pos: 0 flags: 0400001 mnt_id: 80 With O_DIRECT: pos: 0 flags: 0600001 mnt_id: 80 So 0600001 is the expected output for ppc64le hosts, and libvirt is behaving correctly. Closing as NOTABUG. |