flight 13539 xen-unstable real [real] http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ Regressions :-( Tests which did not succeed and are blocking, including tests which could not be run: build-i386-oldkern 4 xen-build fail REGR. vs. 13536 build-i386 4 xen-build fail REGR. vs. 13536 Regressions which are regarded as allowable (not blocking): test-amd64-amd64-xl-sedf-pin 12 guest-saverestore.2 fail blocked in 13536 test-amd64-amd64-xl-qemuu-winxpsp3 9 guest-localmigrate fail like 13536 test-amd64-amd64-xl-qemuu-win7-amd64 9 guest-localmigrate fail like 13536 Tests which did not succeed, but are not blocking: test-amd64-amd64-xl-pcipt-intel 9 guest-start fail never pass test-amd64-i386-pv 1 xen-build-check(1) blocked n/a test-amd64-i386-rhel6hvm-amd 1 xen-build-check(1) blocked n/a test-amd64-i386-qemuu-rhel6hvm-amd 1 xen-build-check(1) blocked n/a test-i386-i386-xl 1 xen-build-check(1) blocked n/a test-amd64-i386-xl-multivcpu 1 xen-build-check(1) blocked n/a test-amd64-i386-xl-credit2 1 xen-build-check(1) blocked n/a test-amd64-i386-xl 1 xen-build-check(1) blocked n/a test-amd64-i386-qemuu-rhel6hvm-intel 1 xen-build-check(1) blocked n/a test-i386-i386-pair 1 xen-build-check(1) blocked n/a test-amd64-i386-pair 1 xen-build-check(1) blocked n/a test-i386-i386-xl-qemuu-winxpsp3 1 xen-build-check(1) blocked n/a test-amd64-i386-xend-winxpsp3 1 xen-build-check(1) blocked n/a test-amd64-i386-rhel6hvm-intel 1 xen-build-check(1) blocked n/a test-amd64-amd64-win 16 leak-check/check fail never pass test-i386-i386-pv 1 xen-build-check(1) blocked n/a test-amd64-i386-win-vcpus1 1 xen-build-check(1) blocked n/a test-amd64-amd64-xl-winxpsp3 13 guest-stop fail never pass test-amd64-i386-xl-win7-amd64 1 xen-build-check(1) blocked n/a test-i386-i386-xl-winxpsp3 1 xen-build-check(1) blocked n/a test-amd64-amd64-xl-win7-amd64 13 guest-stop fail never pass test-amd64-i386-xl-winxpsp3-vcpus1 1 xen-build-check(1) blocked n/a test-amd64-i386-win 1 xen-build-check(1) blocked n/a test-i386-i386-win 1 xen-build-check(1) blocked n/a test-i386-i386-xl-win 1 xen-build-check(1) blocked n/a test-amd64-i386-xl-win-vcpus1 1 xen-build-check(1) blocked n/a test-amd64-amd64-xl-win 13 guest-stop fail never pass version targeted for testing: xen 983ea7521bad baseline version: xen 3d17148e465c ------------------------------------------------------------ People who touched revisions under test: Christoph Egger <Christoph.Egger@amd.com> Jan Beulich <jbeulich@suse.com> Keir Fraser <keir@xen.org> Tim Deegan <tim@xen.org> ------------------------------------------------------------ jobs: build-amd64 pass build-i386 fail build-amd64-oldkern pass build-i386-oldkern fail build-amd64-pvops pass build-i386-pvops pass test-amd64-amd64-xl pass test-amd64-i386-xl blocked test-i386-i386-xl blocked test-amd64-i386-rhel6hvm-amd blocked test-amd64-i386-qemuu-rhel6hvm-amd blocked test-amd64-amd64-xl-qemuu-win7-amd64 fail test-amd64-amd64-xl-win7-amd64 fail test-amd64-i386-xl-win7-amd64 blocked test-amd64-i386-xl-credit2 blocked test-amd64-amd64-xl-pcipt-intel fail test-amd64-i386-rhel6hvm-intel blocked test-amd64-i386-qemuu-rhel6hvm-intel blocked test-amd64-i386-xl-multivcpu blocked test-amd64-amd64-pair pass test-amd64-i386-pair blocked test-i386-i386-pair blocked test-amd64-amd64-xl-sedf-pin fail test-amd64-amd64-pv pass test-amd64-i386-pv blocked test-i386-i386-pv blocked test-amd64-amd64-xl-sedf pass test-amd64-i386-win-vcpus1 blocked test-amd64-i386-xl-win-vcpus1 blocked test-amd64-i386-xl-winxpsp3-vcpus1 blocked test-amd64-amd64-win fail test-amd64-i386-win blocked test-i386-i386-win blocked test-amd64-amd64-xl-win fail test-i386-i386-xl-win blocked test-amd64-amd64-xl-qemuu-winxpsp3 fail test-i386-i386-xl-qemuu-winxpsp3 blocked test-amd64-i386-xend-winxpsp3 blocked test-amd64-amd64-xl-winxpsp3 fail test-i386-i386-xl-winxpsp3 blocked ------------------------------------------------------------ sg-report-flight on woking.cam.xci-test.com logs: /home/xc_osstest/logs images: /home/xc_osstest/images Logs, config files, etc. are available at http://www.chiark.greenend.org.uk/~xensrcts/logs Test harness code can be found at http://xenbits.xensource.com/gitweb?p=osstest.git;a=summary Not pushing. ------------------------------------------------------------ changeset: 25705:983ea7521bad tag: tip user: Tim Deegan <tim@xen.org> date: Thu Aug 02 14:44:53 2012 +0100 nestedhvm: return the pfec from the pagetable walk. Don''t clobber it with the pfec from teh p2m walk behind it; the guest will not expect (or be able to handle) error codes that come from the p2m table, which it can''t see or control. Signed-off-by: Tim Deegan <tim@xen.org> Acked-by: Christoph Egger <Christoph.Egger@amd.com> Committed-by: Tim Deegan <tim@xen.org> changeset: 25704:c323f1af7e67 user: Christoph Egger <Christoph.Egger@amd.com> date: Thu Aug 02 14:38:09 2012 +0100 nestedhvm: fix write access fault on ro mapping Fix write access fault when host npt is mapped read-only. In this case let the host handle the #NPF. Apply host p2mt to hap-on-hap pagetable entry. This fixes the l2 guest graphic display refresh problem. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com> Acked-by: Tim Deegan <tim@xen.org> Committed-by: Tim Deegan <tim@xen.org> changeset: 25703:90bc5e0a67b5 user: Tim Deegan <tim@xen.org> date: Thu Aug 02 12:04:31 2012 +0100 xen: detect compiler version with ''--version'' rather than ''-v'' This allows us to get rid of the ''grep version'', which doesn''t work with localized compilers. Signed-off-by: Tim Deegan <tim@xen.org> Acked-by: Keir Fraser <keir@xen.org> Committed-by: Tim Deegan <tim@xen.org> changeset: 25702:3d17148e465c user: Jan Beulich <jbeulich@suse.com> date: Thu Aug 02 11:49:37 2012 +0200 x86: also allow disabling LAPIC NMI watchdog on newer CPUs This complements c/s 9146:941897e98591, and also replaces a literal zero with a proper manifest constant. Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> (qemu changes not included)
On Fri, 2012-08-03 at 00:41 +0100, xen.org wrote:> flight 13539 xen-unstable real [real] > http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ > > Regressions :-( > > Tests which did not succeed and are blocking, > including tests which could not be run: > build-i386-oldkern 4 xen-build fail REGR. vs. 13536 > build-i386 4 xen-build fail REGR. vs. 13536gcc -O1 -fno-omit-frame-pointer -m32 -march=i686 -g -fno-strict-aliasing -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement -fno-builtin -fno-common -Wredundant-decls -iwithprefix include -Werror -Wno-pointer-arith -pipe -I/home/osstest/build.13539.build-i386/xen-unstable/xen/include -I/home/osstest/build.13539.build-i386/xen-unstable/xen/include/asm-x86/mach-generic -I/home/osstest/build.13539.build-i386/xen-unstable/xen/include/asm-x86/mach-default -msoft-float -fno-stack-protector -fno-exceptions -Wnested-externs -fno-optimize-sibling-calls -nostdinc -g -D__XEN__ -include /home/osstest/build.13539.build-i386/xen-unstable/xen/include/xen/config.h -DVERBOSE -DHAS_ACPI -DHAS_GDBSX -DHAS_PASSTHROUGH -fno-omit-frame-pointer -DCONFIG_FRAME_POINTER -MMD -MF .mce_amd_quirks.o .d -c mce_amd_quirks.c -o mce_amd_quirks.o cc1: warnings being treated as errors hvm.c: In function ''hvm_hap_nested_page_fault'': hvm.c:1282: error: passing argument 2 of ''nestedhvm_hap_nested_page_fault'' from incompatible pointer type /home/osstest/build.13539.build-i386/xen-unstable/xen/include/asm/hvm/nestedhvm.h:55: note: expected ''paddr_t *'' but argument is of type ''long unsigned int *'' Ian.
On Fri, 2012-08-03 at 06:12 +0100, Ian Campbell wrote:> On Fri, 2012-08-03 at 00:41 +0100, xen.org wrote: > > flight 13539 xen-unstable real [real] > > http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ > > > > Regressions :-( > > > > Tests which did not succeed and are blocking, > > including tests which could not be run: > > build-i386-oldkern 4 xen-build fail REGR. vs. 13536 > > build-i386 4 xen-build fail REGR. vs. 135368<---------------------------------- # HG changeset patch # User Ian Campbell <ian.campbell@citrix.com> # Date 1343980045 -3600 # Node ID 23fdca3adb3346090ea8b65b77cad7d279cf9daf # Parent 95a4ab632ac25ce0ec6a245dcc46ad57d3c7030f nestedhvm: fix nested page fault build error on 32-bit cc1: warnings being treated as errors hvm.c: In function ‘hvm_hap_nested_page_fault’: hvm.c:1282: error: passing argument 2 of ‘nestedhvm_hap_nested_page_fault’ from incompatible pointer type /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: note: expected ‘paddr_t *’ but argument is of type ‘long unsigned int *’ hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and ept_handle_violation) actually have the gpa which they pass to hvm_hap_nested_page_fault as a paddr_t I think it makes sense to change the argument to hvm_hap_nested_page_fault. The other user of gpa in hvm_hap_nested_page_fault is a call to p2m_mem_access_check, which currently also takes a paddr_t gpa but I think a paddr_t is appropriate there too. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/hvm/hvm.c --- a/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:43:10 2012 +0100 +++ b/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:47:25 2012 +0100 @@ -1242,7 +1242,7 @@ void hvm_inject_page_fault(int errcode, hvm_inject_trap(&trap); } -int hvm_hap_nested_page_fault(unsigned long gpa, +int hvm_hap_nested_page_fault(paddr_t gpa, bool_t gla_valid, unsigned long gla, bool_t access_r, diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/mm/p2m.c --- a/xen/arch/x86/mm/p2m.c Fri Aug 03 08:43:10 2012 +0100 +++ b/xen/arch/x86/mm/p2m.c Fri Aug 03 08:47:25 2012 +0100 @@ -1233,7 +1233,7 @@ void p2m_mem_paging_resume(struct domain } } -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long gla, +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long gla, bool_t access_r, bool_t access_w, bool_t access_x, mem_event_request_t **req_ptr) { diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/hvm/hvm.h --- a/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:43:10 2012 +0100 +++ b/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:47:25 2012 +0100 @@ -433,7 +433,7 @@ static inline void hvm_set_info_guest(st int hvm_debug_op(struct vcpu *v, int32_t op); -int hvm_hap_nested_page_fault(unsigned long gpa, +int hvm_hap_nested_page_fault(paddr_t gpa, bool_t gla_valid, unsigned long gla, bool_t access_r, bool_t access_w, diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/p2m.h --- a/xen/include/asm-x86/p2m.h Fri Aug 03 08:43:10 2012 +0100 +++ b/xen/include/asm-x86/p2m.h Fri Aug 03 08:47:25 2012 +0100 @@ -589,7 +589,7 @@ static inline void p2m_mem_paging_popula * been promoted with no underlying vcpu pause. If the req_ptr has been populated, * then the caller must put the event in the ring (once having released get_gfn* * locks -- caller must also xfree the request. */ -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long gla, +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long gla, bool_t access_r, bool_t access_w, bool_t access_x, mem_event_request_t **req_ptr); /* Resumes the running of the VCPU, restarting the last instruction */ @@ -606,7 +606,7 @@ int p2m_get_mem_access(struct domain *d, hvmmem_access_t *access); #else -static inline bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, +static inline bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long gla, bool_t access_r, bool_t access_w, bool_t access_x, mem_event_request_t **req_ptr) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
(adding Keir & Jan in case Christoph & Tim aren't around) On Fri, 2012-08-03 at 08:48 +0100, Ian Campbell wrote:> On Fri, 2012-08-03 at 06:12 +0100, Ian Campbell wrote: > > On Fri, 2012-08-03 at 00:41 +0100, xen.org wrote: > > > flight 13539 xen-unstable real [real] > > > http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ > > > > > > Regressions :-( > > > > > > Tests which did not succeed and are blocking, > > > including tests which could not be run: > > > build-i386-oldkern 4 xen-build fail REGR. vs. 13536 > > > build-i386 4 xen-build fail REGR. vs. 13536 > > 8<---------------------------------- > > # HG changeset patch > # User Ian Campbell <ian.campbell@citrix.com> > # Date 1343980045 -3600 > # Node ID 23fdca3adb3346090ea8b65b77cad7d279cf9daf > # Parent 95a4ab632ac25ce0ec6a245dcc46ad57d3c7030f > nestedhvm: fix nested page fault build error on 32-bit > > cc1: warnings being treated as errors > hvm.c: In function ‘hvm_hap_nested_page_fault’: > hvm.c:1282: error: passing argument 2 of ‘nestedhvm_hap_nested_page_fault’ from incompatible pointer type /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: note: expected ‘paddr_t *’ but argument is of type ‘long unsigned int *’ > > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and > ept_handle_violation) actually have the gpa which they pass to > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to > change the argument to hvm_hap_nested_page_fault. > > The other user of gpa in hvm_hap_nested_page_fault is a call to > p2m_mem_access_check, which currently also takes a paddr_t gpa but I > think a paddr_t is appropriate there too. > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/hvm/hvm.c > --- a/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:47:25 2012 +0100 > @@ -1242,7 +1242,7 @@ void hvm_inject_page_fault(int errcode, > hvm_inject_trap(&trap); > } > > -int hvm_hap_nested_page_fault(unsigned long gpa, > +int hvm_hap_nested_page_fault(paddr_t gpa, > bool_t gla_valid, > unsigned long gla, > bool_t access_r, > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/mm/p2m.c > --- a/xen/arch/x86/mm/p2m.c Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/arch/x86/mm/p2m.c Fri Aug 03 08:47:25 2012 +0100 > @@ -1233,7 +1233,7 @@ void p2m_mem_paging_resume(struct domain > } > } > > -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long gla, > +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long gla, > bool_t access_r, bool_t access_w, bool_t access_x, > mem_event_request_t **req_ptr) > { > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/hvm/hvm.h > --- a/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:47:25 2012 +0100 > @@ -433,7 +433,7 @@ static inline void hvm_set_info_guest(st > > int hvm_debug_op(struct vcpu *v, int32_t op); > > -int hvm_hap_nested_page_fault(unsigned long gpa, > +int hvm_hap_nested_page_fault(paddr_t gpa, > bool_t gla_valid, unsigned long gla, > bool_t access_r, > bool_t access_w, > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/p2m.h > --- a/xen/include/asm-x86/p2m.h Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/include/asm-x86/p2m.h Fri Aug 03 08:47:25 2012 +0100 > @@ -589,7 +589,7 @@ static inline void p2m_mem_paging_popula > * been promoted with no underlying vcpu pause. If the req_ptr has been populated, > * then the caller must put the event in the ring (once having released get_gfn* > * locks -- caller must also xfree the request. */ > -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned long gla, > +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long gla, > bool_t access_r, bool_t access_w, bool_t access_x, > mem_event_request_t **req_ptr); > /* Resumes the running of the VCPU, restarting the last instruction */ > @@ -606,7 +606,7 @@ int p2m_get_mem_access(struct domain *d, > hvmmem_access_t *access); > > #else > -static inline bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, > +static inline bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, > unsigned long gla, bool_t access_r, > bool_t access_w, bool_t access_x, > mem_event_request_t **req_ptr) > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
>>> On 03.08.12 at 09:48, Ian Campbell <Ian.Campbell@citrix.com> wrote: > On Fri, 2012-08-03 at 06:12 +0100, Ian Campbell wrote: >> On Fri, 2012-08-03 at 00:41 +0100, xen.org wrote: >> > flight 13539 xen-unstable real [real] >> > http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ >> > >> > Regressions :-( >> > >> > Tests which did not succeed and are blocking, >> > including tests which could not be run: >> > build-i386-oldkern 4 xen-build fail REGR. vs. > 13536 >> > build-i386 4 xen-build fail REGR. vs. > 13536 > > 8<---------------------------------- > > # HG changeset patch > # User Ian Campbell <ian.campbell@citrix.com> > # Date 1343980045 -3600 > # Node ID 23fdca3adb3346090ea8b65b77cad7d279cf9daf > # Parent 95a4ab632ac25ce0ec6a245dcc46ad57d3c7030f > nestedhvm: fix nested page fault build error on 32-bit > > cc1: warnings being treated as errors > hvm.c: In function ‘hvm_hap_nested_page_fault’: > hvm.c:1282: error: passing argument 2 of > ‘nestedhvm_hap_nested_page_fault’ from incompatible pointer type > /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: > note: expected ‘paddr_t *’ but argument is of type ‘long unsigned int *’ > > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and > ept_handle_violation) actually have the gpa which they pass to > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to > change the argument to hvm_hap_nested_page_fault.And that's even outside of the current build failure - it just can't have worked for >4Gb guests on the 32-bit hypervisor.> The other user of gpa in hvm_hap_nested_page_fault is a call to > p2m_mem_access_check, which currently also takes a paddr_t gpa but I > think a paddr_t is appropriate there too. > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>Acked-by: Jan Beulich <jbeulich@suse.com>> diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/hvm/hvm.c > --- a/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:47:25 2012 +0100 > @@ -1242,7 +1242,7 @@ void hvm_inject_page_fault(int errcode, > hvm_inject_trap(&trap); > } > > -int hvm_hap_nested_page_fault(unsigned long gpa, > +int hvm_hap_nested_page_fault(paddr_t gpa, > bool_t gla_valid, > unsigned long gla, > bool_t access_r, > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/mm/p2m.c > --- a/xen/arch/x86/mm/p2m.c Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/arch/x86/mm/p2m.c Fri Aug 03 08:47:25 2012 +0100 > @@ -1233,7 +1233,7 @@ void p2m_mem_paging_resume(struct domain > } > } > > -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned > long gla, > +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long > gla, > bool_t access_r, bool_t access_w, bool_t > access_x, > mem_event_request_t **req_ptr) > { > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/hvm/hvm.h > --- a/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:47:25 2012 +0100 > @@ -433,7 +433,7 @@ static inline void hvm_set_info_guest(st > > int hvm_debug_op(struct vcpu *v, int32_t op); > > -int hvm_hap_nested_page_fault(unsigned long gpa, > +int hvm_hap_nested_page_fault(paddr_t gpa, > bool_t gla_valid, unsigned long gla, > bool_t access_r, > bool_t access_w, > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/p2m.h > --- a/xen/include/asm-x86/p2m.h Fri Aug 03 08:43:10 2012 +0100 > +++ b/xen/include/asm-x86/p2m.h Fri Aug 03 08:47:25 2012 +0100 > @@ -589,7 +589,7 @@ static inline void p2m_mem_paging_popula > * been promoted with no underlying vcpu pause. If the req_ptr has been > populated, > * then the caller must put the event in the ring (once having released > get_gfn* > * locks -- caller must also xfree the request. */ > -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned > long gla, > +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long > gla, > bool_t access_r, bool_t access_w, bool_t > access_x, > mem_event_request_t **req_ptr); > /* Resumes the running of the VCPU, restarting the last instruction */ > @@ -606,7 +606,7 @@ int p2m_get_mem_access(struct domain *d, > hvmmem_access_t *access); > > #else > -static inline bool_t p2m_mem_access_check(unsigned long gpa, bool_t > gla_valid, > +static inline bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, > unsigned long gla, bool_t access_r, > > bool_t access_w, bool_t access_x, > mem_event_request_t **req_ptr) > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
On Fri, 2012-08-03 at 08:59 +0100, Jan Beulich wrote:> >>> On 03.08.12 at 09:48, Ian Campbell <Ian.Campbell@citrix.com> wrote: > > On Fri, 2012-08-03 at 06:12 +0100, Ian Campbell wrote: > >> On Fri, 2012-08-03 at 00:41 +0100, xen.org wrote: > >> > flight 13539 xen-unstable real [real] > >> > http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ > >> > > >> > Regressions :-( > >> > > >> > Tests which did not succeed and are blocking, > >> > including tests which could not be run: > >> > build-i386-oldkern 4 xen-build fail REGR. vs. > > 13536 > >> > build-i386 4 xen-build fail REGR. vs. > > 13536 > > > > 8<---------------------------------- > > > > # HG changeset patch > > # User Ian Campbell <ian.campbell@citrix.com> > > # Date 1343980045 -3600 > > # Node ID 23fdca3adb3346090ea8b65b77cad7d279cf9daf > > # Parent 95a4ab632ac25ce0ec6a245dcc46ad57d3c7030f > > nestedhvm: fix nested page fault build error on 32-bit > > > > cc1: warnings being treated as errors > > hvm.c: In function ‘hvm_hap_nested_page_fault’: > > hvm.c:1282: error: passing argument 2 of > > ‘nestedhvm_hap_nested_page_fault’ from incompatible pointer type > > /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: > > note: expected ‘paddr_t *’ but argument is of type ‘long unsigned int *’ > > > > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa > > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both > > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and > > ept_handle_violation) actually have the gpa which they pass to > > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to > > change the argument to hvm_hap_nested_page_fault. > > And that's even outside of the current build failure - it just > can't have worked for >4Gb guests on the 32-bit hypervisor.Right. I must admit I was surprised to find that nestedhvm was a feature of 32 bit at all, I had expect the fix to be changing some sort of stub function...> > > The other user of gpa in hvm_hap_nested_page_fault is a call to > > p2m_mem_access_check, which currently also takes a paddr_t gpa but I > > think a paddr_t is appropriate there too. > > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > > Acked-by: Jan Beulich <jbeulich@suse.com> > > > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/hvm/hvm.c > > --- a/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:43:10 2012 +0100 > > +++ b/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:47:25 2012 +0100 > > @@ -1242,7 +1242,7 @@ void hvm_inject_page_fault(int errcode, > > hvm_inject_trap(&trap); > > } > > > > -int hvm_hap_nested_page_fault(unsigned long gpa, > > +int hvm_hap_nested_page_fault(paddr_t gpa, > > bool_t gla_valid, > > unsigned long gla, > > bool_t access_r, > > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/mm/p2m.c > > --- a/xen/arch/x86/mm/p2m.c Fri Aug 03 08:43:10 2012 +0100 > > +++ b/xen/arch/x86/mm/p2m.c Fri Aug 03 08:47:25 2012 +0100 > > @@ -1233,7 +1233,7 @@ void p2m_mem_paging_resume(struct domain > > } > > } > > > > -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned > > long gla, > > +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long > > gla, > > bool_t access_r, bool_t access_w, bool_t > > access_x, > > mem_event_request_t **req_ptr) > > { > > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/hvm/hvm.h > > --- a/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:43:10 2012 +0100 > > +++ b/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:47:25 2012 +0100 > > @@ -433,7 +433,7 @@ static inline void hvm_set_info_guest(st > > > > int hvm_debug_op(struct vcpu *v, int32_t op); > > > > -int hvm_hap_nested_page_fault(unsigned long gpa, > > +int hvm_hap_nested_page_fault(paddr_t gpa, > > bool_t gla_valid, unsigned long gla, > > bool_t access_r, > > bool_t access_w, > > diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/p2m.h > > --- a/xen/include/asm-x86/p2m.h Fri Aug 03 08:43:10 2012 +0100 > > +++ b/xen/include/asm-x86/p2m.h Fri Aug 03 08:47:25 2012 +0100 > > @@ -589,7 +589,7 @@ static inline void p2m_mem_paging_popula > > * been promoted with no underlying vcpu pause. If the req_ptr has been > > populated, > > * then the caller must put the event in the ring (once having released > > get_gfn* > > * locks -- caller must also xfree the request. */ > > -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned > > long gla, > > +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long > > gla, > > bool_t access_r, bool_t access_w, bool_t > > access_x, > > mem_event_request_t **req_ptr); > > /* Resumes the running of the VCPU, restarting the last instruction */ > > @@ -606,7 +606,7 @@ int p2m_get_mem_access(struct domain *d, > > hvmmem_access_t *access); > > > > #else > > -static inline bool_t p2m_mem_access_check(unsigned long gpa, bool_t > > gla_valid, > > +static inline bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, > > unsigned long gla, bool_t access_r, > > > > bool_t access_w, bool_t access_x, > > mem_event_request_t **req_ptr) > > > > > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xen.org > > http://lists.xen.org/xen-devel > >_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
At 08:48 +0100 on 03 Aug (1343983712), Ian Campbell wrote:> nestedhvm: fix nested page fault build error on 32-bit > > cc1: warnings being treated as errors > hvm.c: In function ???hvm_hap_nested_page_fault???: > hvm.c:1282: error: passing argument 2 of ???nestedhvm_hap_nested_page_fault??? from incompatible pointer type /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: note: expected ???paddr_t *??? but argument is of type ???long unsigned int *??? > > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and > ept_handle_violation) actually have the gpa which they pass to > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to > change the argument to hvm_hap_nested_page_fault. > > The other user of gpa in hvm_hap_nested_page_fault is a call to > p2m_mem_access_check, which currently also takes a paddr_t gpa but I > think a paddr_t is appropriate there too. > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>Acked-by: Tim Deegan <tim@xen.org> I think this is a candidate for backporting, too. As Jan points out, this is a HAP bug on 32-bit with >4G guests. Tim.
On Fri, 2012-08-03 at 09:34 +0100, Tim Deegan wrote:> At 08:48 +0100 on 03 Aug (1343983712), Ian Campbell wrote: > > nestedhvm: fix nested page fault build error on 32-bit > > > > cc1: warnings being treated as errors > > hvm.c: In function ???hvm_hap_nested_page_fault???: > > hvm.c:1282: error: passing argument 2 of ???nestedhvm_hap_nested_page_fault??? from incompatible pointer type /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: note: expected ???paddr_t *??? but argument is of type ???long unsigned int *??? > > > > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa > > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both > > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and > > ept_handle_violation) actually have the gpa which they pass to > > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to > > change the argument to hvm_hap_nested_page_fault. > > > > The other user of gpa in hvm_hap_nested_page_fault is a call to > > p2m_mem_access_check, which currently also takes a paddr_t gpa but I > > think a paddr_t is appropriate there too. > > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > > Acked-by: Tim Deegan <tim@xen.org>Is one of you or Jan going to apply or shall I? (I''m doing a tools commit sweep right now)> I think this is a candidate for backporting, too. As Jan points out, > this is a HAP bug on 32-bit with >4G guests. > > Tim. >
At 09:37 +0100 on 03 Aug (1343986678), Ian Campbell wrote:> On Fri, 2012-08-03 at 09:34 +0100, Tim Deegan wrote: > > At 08:48 +0100 on 03 Aug (1343983712), Ian Campbell wrote: > > > nestedhvm: fix nested page fault build error on 32-bit > > > > > > cc1: warnings being treated as errors > > > hvm.c: In function ???hvm_hap_nested_page_fault???: > > > hvm.c:1282: error: passing argument 2 of ???nestedhvm_hap_nested_page_fault??? from incompatible pointer type /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: note: expected ???paddr_t *??? but argument is of type ???long unsigned int *??? > > > > > > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa > > > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both > > > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and > > > ept_handle_violation) actually have the gpa which they pass to > > > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to > > > change the argument to hvm_hap_nested_page_fault. > > > > > > The other user of gpa in hvm_hap_nested_page_fault is a call to > > > p2m_mem_access_check, which currently also takes a paddr_t gpa but I > > > think a paddr_t is appropriate there too. > > > > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > > > > Acked-by: Tim Deegan <tim@xen.org> > > Is one of you or Jan going to apply or shall I? (I''m doing a tools > commit sweep right now)If you''re already applying things, please do apply up this one too. Tim.
>>> On 03.08.12 at 10:00, Ian Campbell <Ian.Campbell@citrix.com> wrote: > On Fri, 2012-08-03 at 08:59 +0100, Jan Beulich wrote: >> >>> On 03.08.12 at 09:48, Ian Campbell <Ian.Campbell@citrix.com> wrote: >> > On Fri, 2012-08-03 at 06:12 +0100, Ian Campbell wrote: >> >> On Fri, 2012-08-03 at 00:41 +0100, xen.org wrote: >> >> > flight 13539 xen-unstable real [real] >> >> > http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ >> >> > >> >> > Regressions :-( >> >> > >> >> > Tests which did not succeed and are blocking, >> >> > including tests which could not be run: >> >> > build-i386-oldkern 4 xen-build fail REGR. vs. >> > 13536 >> >> > build-i386 4 xen-build fail REGR. vs. >> > 13536 >> > >> > 8<---------------------------------- >> > >> > # HG changeset patch >> > # User Ian Campbell <ian.campbell@citrix.com> >> > # Date 1343980045 -3600 >> > # Node ID 23fdca3adb3346090ea8b65b77cad7d279cf9daf >> > # Parent 95a4ab632ac25ce0ec6a245dcc46ad57d3c7030f >> > nestedhvm: fix nested page fault build error on 32-bit >> > >> > cc1: warnings being treated as errors >> > hvm.c: In function ‘hvm_hap_nested_page_fault’: >> > hvm.c:1282: error: passing argument 2 of >> > ‘nestedhvm_hap_nested_page_fault’ from incompatible pointer type >> > > /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: > >> > note: expected ‘paddr_t *’ but argument is of type ‘long unsigned int *’ >> > >> > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa >> > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both >> > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and >> > ept_handle_violation) actually have the gpa which they pass to >> > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to >> > change the argument to hvm_hap_nested_page_fault. >> >> And that's even outside of the current build failure - it just >> can't have worked for >4Gb guests on the 32-bit hypervisor. > > Right. I must admit I was surprised to find that nestedhvm was a feature > of 32 bit at all, I had expect the fix to be changing some sort of stub > function...So did I first think. But the function that needed changing really isn't nested-HVM only, so the fix was required in any case (just that without the exposing c/s, the problem would likely have been found a lot later). Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel
On Fri, 2012-08-03 at 09:39 +0100, Tim Deegan wrote:> At 09:37 +0100 on 03 Aug (1343986678), Ian Campbell wrote: > > On Fri, 2012-08-03 at 09:34 +0100, Tim Deegan wrote: > > > At 08:48 +0100 on 03 Aug (1343983712), Ian Campbell wrote: > > > > nestedhvm: fix nested page fault build error on 32-bit > > > > > > > > cc1: warnings being treated as errors > > > > hvm.c: In function ???hvm_hap_nested_page_fault???: > > > > hvm.c:1282: error: passing argument 2 of ???nestedhvm_hap_nested_page_fault??? from incompatible pointer type /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: note: expected ???paddr_t *??? but argument is of type ???long unsigned int *??? > > > > > > > > hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa > > > > to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both > > > > of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and > > > > ept_handle_violation) actually have the gpa which they pass to > > > > hvm_hap_nested_page_fault as a paddr_t I think it makes sense to > > > > change the argument to hvm_hap_nested_page_fault. > > > > > > > > The other user of gpa in hvm_hap_nested_page_fault is a call to > > > > p2m_mem_access_check, which currently also takes a paddr_t gpa but I > > > > think a paddr_t is appropriate there too. > > > > > > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > > > > > > Acked-by: Tim Deegan <tim@xen.org> > > > > Is one of you or Jan going to apply or shall I? (I''m doing a tools > > commit sweep right now) > > If you''re already applying things, please do apply up this one too.Done. I added an extra sentence to the commit log: Jan points out that this is also an issue for >4GB guests on the 32 bit hypervisor.> > Tim.
On 08/03/12 09:59, Jan Beulich wrote:>>>> On 03.08.12 at 09:48, Ian Campbell <Ian.Campbell@citrix.com> wrote: >> On Fri, 2012-08-03 at 06:12 +0100, Ian Campbell wrote: >>> On Fri, 2012-08-03 at 00:41 +0100, xen.org wrote: >>>> flight 13539 xen-unstable real [real] >>>> http://www.chiark.greenend.org.uk/~xensrcts/logs/13539/ >>>> >>>> Regressions :-( >>>> >>>> Tests which did not succeed and are blocking, >>>> including tests which could not be run: >>>> build-i386-oldkern 4 xen-build fail REGR. vs. >> 13536 >>>> build-i386 4 xen-build fail REGR. vs. >> 13536 >> >> 8<---------------------------------- >> >> # HG changeset patch >> # User Ian Campbell <ian.campbell@citrix.com> >> # Date 1343980045 -3600 >> # Node ID 23fdca3adb3346090ea8b65b77cad7d279cf9daf >> # Parent 95a4ab632ac25ce0ec6a245dcc46ad57d3c7030f >> nestedhvm: fix nested page fault build error on 32-bit >> >> cc1: warnings being treated as errors >> hvm.c: In function ‘hvm_hap_nested_page_fault’: >> hvm.c:1282: error: passing argument 2 of >> ‘nestedhvm_hap_nested_page_fault’ from incompatible pointer type >> /local/scratch/ianc/devel/xen-unstable.hg/xen/include/asm/hvm/nestedhvm.h:55: >> note: expected ‘paddr_t *’ but argument is of type ‘long unsigned int *’ >> >> hvm_hap_nested_page_fault takes an unsigned long gpa and passes &gpa >> to nestedhvm_hap_nested_page_fault which takes a paddr_t *. Since both >> of the callers of hvm_hap_nested_page_fault (svm_do_nested_pgfault and >> ept_handle_violation) actually have the gpa which they pass to >> hvm_hap_nested_page_fault as a paddr_t I think it makes sense to >> change the argument to hvm_hap_nested_page_fault. > > And that's even outside of the current build failure - it just > can't have worked for >4Gb guests on the 32-bit hypervisor. > >> The other user of gpa in hvm_hap_nested_page_fault is a call to >> p2m_mem_access_check, which currently also takes a paddr_t gpa but I >> think a paddr_t is appropriate there too. >> >> Signed-off-by: Ian Campbell <ian.campbell@citrix.com> > > Acked-by: Jan Beulich <jbeulich@suse.com>Acked-by: Christoph Egger <Christoph.Egger@amd.com>> >> diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/hvm/hvm.c >> --- a/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:43:10 2012 +0100 >> +++ b/xen/arch/x86/hvm/hvm.c Fri Aug 03 08:47:25 2012 +0100 >> @@ -1242,7 +1242,7 @@ void hvm_inject_page_fault(int errcode, >> hvm_inject_trap(&trap); >> } >> >> -int hvm_hap_nested_page_fault(unsigned long gpa, >> +int hvm_hap_nested_page_fault(paddr_t gpa, >> bool_t gla_valid, >> unsigned long gla, >> bool_t access_r, >> diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/arch/x86/mm/p2m.c >> --- a/xen/arch/x86/mm/p2m.c Fri Aug 03 08:43:10 2012 +0100 >> +++ b/xen/arch/x86/mm/p2m.c Fri Aug 03 08:47:25 2012 +0100 >> @@ -1233,7 +1233,7 @@ void p2m_mem_paging_resume(struct domain >> } >> } >> >> -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned >> long gla, >> +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long >> gla, >> bool_t access_r, bool_t access_w, bool_t >> access_x, >> mem_event_request_t **req_ptr) >> { >> diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/hvm/hvm.h >> --- a/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:43:10 2012 +0100 >> +++ b/xen/include/asm-x86/hvm/hvm.h Fri Aug 03 08:47:25 2012 +0100 >> @@ -433,7 +433,7 @@ static inline void hvm_set_info_guest(st >> >> int hvm_debug_op(struct vcpu *v, int32_t op); >> >> -int hvm_hap_nested_page_fault(unsigned long gpa, >> +int hvm_hap_nested_page_fault(paddr_t gpa, >> bool_t gla_valid, unsigned long gla, >> bool_t access_r, >> bool_t access_w, >> diff -r 95a4ab632ac2 -r 23fdca3adb33 xen/include/asm-x86/p2m.h >> --- a/xen/include/asm-x86/p2m.h Fri Aug 03 08:43:10 2012 +0100 >> +++ b/xen/include/asm-x86/p2m.h Fri Aug 03 08:47:25 2012 +0100 >> @@ -589,7 +589,7 @@ static inline void p2m_mem_paging_popula >> * been promoted with no underlying vcpu pause. If the req_ptr has been >> populated, >> * then the caller must put the event in the ring (once having released >> get_gfn* >> * locks -- caller must also xfree the request. */ >> -bool_t p2m_mem_access_check(unsigned long gpa, bool_t gla_valid, unsigned >> long gla, >> +bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, unsigned long >> gla, >> bool_t access_r, bool_t access_w, bool_t >> access_x, >> mem_event_request_t **req_ptr); >> /* Resumes the running of the VCPU, restarting the last instruction */ >> @@ -606,7 +606,7 @@ int p2m_get_mem_access(struct domain *d, >> hvmmem_access_t *access); >> >> #else >> -static inline bool_t p2m_mem_access_check(unsigned long gpa, bool_t >> gla_valid, >> +static inline bool_t p2m_mem_access_check(paddr_t gpa, bool_t gla_valid, >> unsigned long gla, bool_t access_r, >> >> bool_t access_w, bool_t access_x, >> mem_event_request_t **req_ptr) >> >> >> >> _______________________________________________ >> Xen-devel mailing list >> Xen-devel@lists.xen.org >> http://lists.xen.org/xen-devel-- ---to satisfy European Law for business letters: Advanced Micro Devices GmbH Einsteinring 24, 85689 Dornach b. Muenchen Geschaeftsfuehrer: Alberto Bozzo Sitz: Dornach, Gemeinde Aschheim, Landkreis Muenchen Registergericht Muenchen, HRB Nr. 43632 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel