direct-io.hg

view xen/Makefile @ 10734:9b7e1ea4c4d2

[HVM] Sync p2m table across all vcpus on x86_32p xen.
We found VGA acceleration can not work on SMP VMX guests on x86_32p
xen, this is caused by the way we construct p2m table today: only the 1st
l2 page table slot that maps p2m table pages is copied to none-vcpu0 vcpu
monitor page table when VMX is created. But VGA acceleration will
create some p2m table entries beyond the 1st l2 page table slot after HVM is
created, so only vcpu0 can get these p2m entries, and other vcpu can
not do VGA acceleration.

Signed-off-by: Xin Li <xin.b.li@intel.com>
author kfraser@localhost.localdomain
date Wed Jul 26 11:34:12 2006 +0100 (2006-07-26)
parents f986ead202dc
children b786bfb058eb
line source
1 # This is the correct place to edit the build version.
2 # All other places this is stored (eg. compile.h) should be autogenerated.
3 export XEN_VERSION = 3
4 export XEN_SUBVERSION = 0
5 export XEN_EXTRAVERSION ?= -unstable
6 export XEN_FULLVERSION = $(XEN_VERSION).$(XEN_SUBVERSION)$(XEN_EXTRAVERSION)
7 -include xen-version
9 export BASEDIR := $(CURDIR)
11 .PHONY: default
12 default: build
14 .PHONY: dist
15 dist: install
17 .PHONY: build install clean distclean cscope TAGS tags
18 build install debug clean distclean cscope TAGS tags::
19 $(MAKE) -f Rules.mk _$@
21 .PHONY: _build
22 _build: $(TARGET).gz
24 .PHONY: _install
25 _install: $(TARGET).gz
26 [ -d $(DESTDIR)/boot ] || $(INSTALL_DIR) $(DESTDIR)/boot
27 $(INSTALL_DATA) $(TARGET).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_FULLVERSION).gz
28 ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).$(XEN_SUBVERSION).gz
29 ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET))-$(XEN_VERSION).gz
30 ln -f -s $(notdir $(TARGET))-$(XEN_FULLVERSION).gz $(DESTDIR)/boot/$(notdir $(TARGET)).gz
31 $(INSTALL_DATA) $(TARGET)-syms $(DESTDIR)/boot/$(notdir $(TARGET))-syms-$(XEN_FULLVERSION)
32 [ -d $(DESTDIR)/usr/include/xen/io ] || \
33 $(INSTALL_DIR) $(DESTDIR)/usr/include/xen/io
34 $(INSTALL_DATA) include/public/*.h $(DESTDIR)/usr/include/xen
35 $(INSTALL_DATA) include/public/io/*.h $(DESTDIR)/usr/include/xen/io
36 $(INSTALL_DATA) include/public/COPYING $(DESTDIR)/usr/include/xen
38 .PHONY: _debug
39 _debug:
40 objdump -D -S $(TARGET)-syms > $(TARGET).s
42 .PHONY: _clean
43 _clean: delete-unfresh-files
44 $(MAKE) -C tools clean
45 $(MAKE) -f $(BASEDIR)/Rules.mk -C common clean
46 $(MAKE) -f $(BASEDIR)/Rules.mk -C drivers clean
47 $(MAKE) -f $(BASEDIR)/Rules.mk -C acm clean
48 $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) clean
49 rm -f include/asm *.o $(TARGET)* *~ core
50 rm -f include/asm-*/asm-offsets.h
51 rm -f include/xen/acm_policy.h
53 .PHONY: _distclean
54 _distclean: clean
55 rm -f tags TAGS cscope.files cscope.in.out cscope.out cscope.po.out
57 $(TARGET).gz: $(TARGET)
58 gzip -f -9 < $< > $@.new
59 mv $@.new $@
61 $(TARGET): delete-unfresh-files
62 $(MAKE) -C tools
63 $(MAKE) -f $(BASEDIR)/Rules.mk include/xen/compile.h
64 $(MAKE) -f $(BASEDIR)/Rules.mk include/xen/acm_policy.h
65 [ -e include/asm ] || ln -sf asm-$(TARGET_ARCH) include/asm
66 $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) asm-offsets.s
67 $(MAKE) -f $(BASEDIR)/Rules.mk include/asm-$(TARGET_ARCH)/asm-offsets.h
68 $(MAKE) -f $(BASEDIR)/Rules.mk -C arch/$(TARGET_ARCH) $(TARGET)
70 # drivers/char/console.o contains static banner/compile info. Blow it away.
71 # Don't refresh these files during e.g., 'sudo make install'
72 .PHONY: delete-unfresh-files
73 delete-unfresh-files:
74 @if [ ! -r include/xen/compile.h -o -O include/xen/compile.h ]; then \
75 rm -f include/xen/{banner,compile}.h; \
76 fi
78 # acm_policy.h contains security policy for Xen
79 include/xen/acm_policy.h:
80 @(set -e; \
81 echo "/*"; \
82 echo " * DO NOT MODIFY."; \
83 echo " *"; \
84 echo " * This file was auto-generated by xen/Makefile $<"; \
85 echo " *"; \
86 echo " */"; \
87 echo ""; \
88 echo "#ifndef ACM_DEFAULT_SECURITY_POLICY"; \
89 echo "#define ACM_DEFAULT_SECURITY_POLICY $(ACM_DEFAULT_SECURITY_POLICY)"; \
90 echo "#endif") >$@
92 # compile.h contains dynamic build info. Rebuilt on every 'make' invocation.
93 include/xen/compile.h: LANG=C
94 include/xen/compile.h: include/xen/compile.h.in include/xen/banner.h
95 @sed -e 's/@@date@@/$(shell date)/g' \
96 -e 's/@@time@@/$(shell date +%T)/g' \
97 -e 's/@@whoami@@/$(shell whoami)/g' \
98 -e 's/@@domain@@/$(shell ([ -x /bin/dnsdomainname ] && /bin/dnsdomainname) || ([ -x /bin/domainname ] && /bin/domainname || echo [unknown]))/g' \
99 -e 's/@@hostname@@/$(shell hostname)/g' \
100 -e 's|@@compiler@@|$(shell $(CC) $(CFLAGS) -v 2>&1 | tail -n 1 | sed -e "s;|;/;")|g' \
101 -e 's/@@version@@/$(XEN_VERSION)/g' \
102 -e 's/@@subversion@@/$(XEN_SUBVERSION)/g' \
103 -e 's/@@extraversion@@/$(XEN_EXTRAVERSION)/g' \
104 -e 's!@@changeset@@!$(shell ((hg parents || head -n 7 ../ChangeLog || echo date: unavailable) | awk '{FS="changeset:[ ]+"}/^changeset/{CS=$$2};{FS="date:[ ]+"}/^date/{D=$$2}; END {print D, CS}') 2>/dev/null)!g' \
105 < include/xen/compile.h.in > $@.new
106 @cat include/xen/banner.h >> $@.new
107 @mv -f $@.new $@
109 include/xen/banner.h:
110 tools/figlet/figlet -d tools/figlet Xen $(XEN_FULLVERSION) > $@.new
111 @mv -f $@.new $@
113 include/asm-$(TARGET_ARCH)/asm-offsets.h: arch/$(TARGET_ARCH)/asm-offsets.s
114 @(set -e; \
115 echo "/*"; \
116 echo " * DO NOT MODIFY."; \
117 echo " *"; \
118 echo " * This file was auto-generated from $<"; \
119 echo " *"; \
120 echo " */"; \
121 echo ""; \
122 echo "#ifndef __ASM_OFFSETS_H__"; \
123 echo "#define __ASM_OFFSETS_H__"; \
124 echo ""; \
125 sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \
126 echo ""; \
127 echo "#endif") <$< >$@
129 SUBDIRS = acm arch/$(TARGET_ARCH) common drivers
130 define all_sources
131 ( find include/asm-$(TARGET_ARCH) -name SCCS -prune -o -name '*.h' -print; \
132 find include -type d -name SCCS -prune -o \( -name "asm-*" -o \
133 -name config \) -prune -o -name '*.h' -print; \
134 find $(SUBDIRS) -name SCCS -prune -o -name '*.[chS]' -print )
135 endef
137 .PHONY: _TAGS
138 _TAGS:
139 rm -f TAGS && $(all_sources) | xargs etags -a
141 .PHONY: _tags
142 _tags:
143 rm -f TAGS && $(all_sources) | xargs ctags -a
145 .PHONY: _cscope
146 _cscope:
147 $(all_sources) > cscope.files
148 cscope -k -b -q
150 .PHONY: MAP
151 MAP:
152 $(NM) $(TARGET) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map