1
2	List of maintainers and how to submit changes
3	=============================================
4
5Please try to follow the guidelines below.  This will make things
6easier on the maintainers.  Not all of these guidelines matter for every
7trivial patch so apply some common sense.
8
91.	Always _test_ your changes, however small, on at least 4 or
10	5 people, preferably many more.
11
122.	Make sure your changes compile correctly in multiple
13	configurations. For example, both 32- and 64-bit x86.
14
153.	Make a patch available to the relevant maintainer in the list. Use
16	'diff -u' to make the patch easy to merge. Be prepared to get your
17	changes sent back with seemingly silly requests about formatting
18	and variable names.  These aren't as silly as they seem. One
19	job the maintainers do is to keep things looking the same.
20
21	PLEASE see https://wiki.xenproject.org/wiki/Submitting_Xen_Patches for
22	hints on how to submit a patch to xen-unstable in a suitable
23	form.
24
25	PLEASE try to include any credit lines you want added with the
26	patch. It avoids people being missed off by mistake and makes
27	it easier to know who wants adding and who doesn't.
28
29	PLEASE document known bugs. If it doesn't work for everything
30	or does something very odd once a month document it.
31
32	PLEASE remember that submissions must be made under the terms
33	of the "Developer's Certificate of Origin" (DCO) and should include
34	a Signed-off-by: line.
35
364.	Make sure you have the right to send any changes you make. If you
37	do changes at work you may find your employer owns the patch
38	not you.
39
405.	Happy hacking.
41
42
43	Stable Release Maintenance
44	==========================
45
46The policy for inclusion in a Xen stable release is different to that
47for inclusion in xen-unstable.
48
49Please see https://wiki.xenproject.org/wiki/Xen_Maintenance_Releases for more
50information.
51
52Backport requests should be made on the xen-devel@lists.xenproject.org
53list. Remember to copy the appropriate stable branch maintainer who
54will be listed in this section of the MAINTAINERS file in the
55appropriate branch.
56
57	Unstable Subsystem Maintainers
58	==============================
59
60Descriptions of section entries:
61
62	M: Maintainer: FullName <address@domain>
63	   Maintainers should be CCed on patches.  At least one of them
64	   needs to approve changes to the covered files.
65	R: Designated reviewer: FullName <address@domain>
66	   Reviewers should be CCed on patches.  However, they do not
67	   have a formal governance role, and are listed here
68	   simply because of their own request.
69	L: Mailing list that is relevant to this area
70	W: Web-page with status/info
71	T: SCM tree type and location.  Type is one of: git, hg, quilt, stgit.
72	S: Status, one of the following:
73	   Supported:	Someone is actually paid to look after this.
74	   Maintained:	Someone actually looks after it.
75	   Odd Fixes:	It has a maintainer but they don't have time to do
76			much other than throw the odd patch in. See below..
77	   Orphan:	No current maintainer [but maybe you could take the
78			role as you write your new code].
79	   Obsolete:	Old code. Something tagged obsolete generally means
80			it has been replaced by a better system and you
81			should be using that.
82	F: Files and directories with wildcard patterns.
83	   A trailing slash includes all files and subdirectory files.
84	   F:	drivers/net/	all files in and below drivers/net
85	   F:	drivers/net/*	all files in drivers/net, but not below
86	   F:	*/net/*		all files in "any top level directory"/net
87	   One pattern per line.  Multiple F: lines acceptable.
88	X: Files and directories that are NOT maintained, same rules as F:
89	   Files exclusions are tested before file matches.
90	   Can be useful for excluding a specific subdirectory, for instance:
91	   F:	net/
92	   X:	net/ipv6/
93	   matches all files in and below net excluding net/ipv6/
94	K: Keyword perl extended regex pattern to match content in a
95	   patch or file.  For instance:
96	   K: of_get_profile
97	      matches patches or files that contain "of_get_profile"
98	   K: \b(printk|pr_(info|err))\b
99	      matches patches or files that contain one or more of the words
100	      printk, pr_info or pr_err
101	   One regex pattern per line.  Multiple K: lines acceptable.
102	V: Version identifier that must be under THE REST and follows
103	   the format:
104	   xen-maintainers-<version format number of this file>
105
106
107	Check-in policy
108	===============
109
110In order for a patch to be checked in, in general, several conditions
111must be met:
112
1131. In order to get a change to a given file committed, it must have
114   the approval of at least one maintainer of that file.
115
116   A patch of course needs Acks from the maintainers of each file that
117   it changes; so a patch which changes xen/arch/x86/traps.c,
118   xen/arch/x86/mm/p2m.c, and xen/arch/x86/mm/shadow/multi.c would
119   require an Ack from each of the three sets of maintainers.
120
121   See below for rules on nested maintainership.
122
1232. It must have appropriate approval from someone other than the
124   submitter.  This can be either:
125
126  a. An Acked-by from a maintainer of the code being touched (a
127     co-maintainer if available, or a more general level maintainer if
128     not available; see the secton on nested maintainership)
129
130  b. A Reviewed-by by anyone of suitable stature in the community
131
1323. Sufficient time must have been given for anyone to respond.  This
133   depends in large part upon the urgency and nature of the patch.
134   For a straightforward uncontroversial patch, a day or two may be
135   sufficient; for a controversial patch, a week or two may be better.
136
1374. There must be no "open" objections.
138
139In a case where one person submits a patch and a maintainer gives an
140Ack, the Ack stands in for both the approval requirement (#1) and the
141Acked-by-non-submitter requirement (#2).
142
143In a case where a maintainer themselves submits a patch, the
144Signed-off-by meets the approval requirement (#1); so a Review
145from anyone in the community suffices for requirement #2.
146
147Before a maintainer checks in their own patch with another community
148member's R-b but no co-maintainer Ack, it is especially important to
149give their co-maintainer opportunity to give feedback, perhaps
150declaring their intention to check it in without their co-maintainers
151ack a day before doing so.
152
153Maintainers may choose to override non-maintainer objections in the
154case that consensus can't be reached.
155
156As always, no policy can cover all possible situations.  In
157exceptional circumstances, committers may commit a patch in absence of
158one or more of the above requirements, if they are reasonably
159confident that the other maintainers will approve of their decision in
160retrospect.
161
162       The meaning of nesting
163       ======================
164
165Many maintainership areas are "nested": for example, there are entries
166for xen/arch/x86 as well as xen/arch/x86/mm, and even
167xen/arch/x86/mm/shadow; and there is a section at the end called "THE
168REST" which lists all committers.  The meaning of nesting is that:
169
1701. Under normal circumstances, the Ack of the most specific maintainer
171is both necessary and sufficient to get a change to a given file
172committed.  So a change to xen/arch/x86/mm/shadow/multi.c requires the
173the Ack of the xen/arch/x86/mm/shadow maintainer for that part of the
174patch, but would not require the Ack of the xen/arch/x86 maintainer or
175the xen/arch/x86/mm maintainer.
176
1772. In unusual circumstances, a more general maintainer's Ack can stand
178in for or even overrule a specific maintainer's Ack.  Unusual
179circumstances might include:
180 - The patch is fixing a high-priority issue causing immediate pain,
181 and the more specific maintainer is not available.
182 - The more specific maintainer has not responded either to the
183 original patch, nor to "pings", within a reasonable amount of time.
184 - The more general maintainer wants to overrule the more specific
185 maintainer on some issue. (This should be exceptional.)
186 - In the case of a disagreement between maintainers, THE REST can
187 settle the matter by majority vote.  (This should be very exceptional
188 indeed.)
189
190
191Maintainers List (try to look for most precise areas first)
192
193		-----------------------------------
194
195ACPI
196M:	Jan Beulich <jbeulich@suse.com>
197S:	Supported
198F:	xen/arch/x86/acpi/
199F:	xen/drivers/acpi/
200F:	xen/include/acpi/
201F:	tools/libacpi/
202
203AMD IOMMU
204M:	Jan Beulich <jbeulich@suse.com>
205M:	Andrew Cooper <andrew.cooper3@citrix.com>
206S:	Maintained
207F:	xen/drivers/passthrough/amd/
208
209AMD SVM
210M:	Jan Beulich <jbeulich@suse.com>
211M:	Andrew Cooper <andrew.cooper3@citrix.com>
212S:	Supported
213F:	xen/arch/x86/hvm/svm/
214F:	xen/arch/x86/cpu/vpmu_amd.c
215
216ARGO
217M:	Christopher Clark <christopher.w.clark@gmail.com>
218S:	Maintained
219F:	xen/include/public/argo.h
220F:	xen/include/xen/argo.h
221F:	xen/common/argo.c
222
223ARINC653 SCHEDULER
224M:	Josh Whitehead <josh.whitehead@dornerworks.com>
225M:	Stewart Hildebrand <stewart.hildebrand@dornerworks.com>
226S:	Supported
227L:	xen-devel@dornerworks.com
228F:	xen/common/sched/arinc653.c
229F:	tools/libxc/xc_arinc653.c
230
231ARM (W/ VIRTUALISATION EXTENSIONS) ARCHITECTURE
232M:	Stefano Stabellini <sstabellini@kernel.org>
233M:	Julien Grall <julien@xen.org>
234R:	Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
235S:	Supported
236L:	xen-devel@lists.xenproject.org
237F:	docs/misc/arm/
238F:	xen/arch/arm/
239F:	xen/drivers/char/arm-uart.c
240F:	xen/drivers/char/cadence-uart.c
241F:	xen/drivers/char/exynos4210-uart.c
242F:	xen/drivers/char/meson-uart.c
243F:	xen/drivers/char/mvebu-uart.c
244F:	xen/drivers/char/omap-uart.c
245F:	xen/drivers/char/pl011.c
246F:	xen/drivers/char/scif-uart.c
247F:	xen/drivers/passthrough/arm/
248F:	xen/include/asm-arm/
249F:	xen/include/public/arch-arm/
250F:	xen/include/public/arch-arm.h
251
252Change Log
253M:	Paul Durrant <paul@xen.org>
254R:	Community Manager <community.manager@xenproject.org>
255S:	Maintained
256F:	CHANGELOG.md
257
258Continuous Integration (CI)
259M:	Doug Goldstein <cardoe@cardoe.com>
260W:	https://gitlab.com/xen-project/xen
261W:	https://travis-ci.org/xen-project/xen
262S:	Supported
263F:	.gitlab-ci.yml
264F:	.travis.yml
265F:	automation/
266F:	scripts/travis-build
267
268CPU POOLS
269M:	Juergen Gross <jgross@suse.com>
270M:	Dario Faggioli <dfaggioli@suse.com>
271S:	Supported
272F:	xen/common/sched/cpupool.c
273
274DEVICE TREE
275M:	Stefano Stabellini <sstabellini@kernel.org>
276M:	Julien Grall <julien@xen.org>
277S:	Supported
278F:	xen/common/libfdt/
279F:	xen/common/device_tree.c
280F:	xen/include/xen/libfdt/
281F:	xen/include/xen/device_tree.h
282F:	xen/drivers/passthrough/device_tree.c
283
284EFI
285M:	Jan Beulich <jbeulich@suse.com>
286S:	Supported
287F:	xen/arch/x86/efi/
288F:	xen/common/efi/
289F:	xen/include/efi/
290F:	xen/include/asm-x86/efi*.h
291F:	xen/include/asm-x86/x86_*/efi*.h
292
293GDBSX DEBUGGER
294M:	Elena Ufimtseva <elena.ufimtseva@oracle.com>
295S:	Supported
296F:	xen/arch/x86/debug.c
297F:	tools/debugger/gdbsx/
298
299GOLANG BINDINGS
300M:	George Dunlap <george.dunlap@citrix.com>
301S:	Maintained
302F:	tools/golang
303
304INTEL(R) TRUSTED EXECUTION TECHNOLOGY (TXT)
305R:	Lukasz Hawrylko <lukasz.hawrylko@linux.intel.com>
306S:	Odd Fixes
307F:	xen/arch/x86/tboot.c
308F:	xen/include/asm-x86/tboot.h
309
310INTEL(R) VT FOR DIRECTED I/O (VT-D)
311M:	Kevin Tian <kevin.tian@intel.com>
312S:	Supported
313F:	xen/drivers/passthrough/vtd/
314
315INTEL(R) VT FOR X86 (VT-X)
316M:	Jun Nakajima <jun.nakajima@intel.com>
317M:	Kevin Tian <kevin.tian@intel.com>
318S:	Supported
319F:	xen/arch/x86/hvm/vmx/
320F:	xen/arch/x86/mm/p2m-ept.c
321F:	xen/include/asm-x86/hvm/vmx/
322F:	xen/arch/x86/cpu/vpmu_intel.c
323
324IOMMU VENDOR INDEPENDENT CODE
325M:	Jan Beulich <jbeulich@suse.com>
326M:	Paul Durrant <paul@xen.org>
327S:	Supported
328F:	xen/drivers/passthrough/
329X:	xen/drivers/passthrough/amd/
330X:	xen/drivers/passthrough/arm/
331X:	xen/drivers/passthrough/vtd/
332X:	xen/drivers/passthrough/device_tree.c
333F:	xen/include/xen/iommu.h
334
335KCONFIG
336M:	Doug Goldstein <cardoe@cardoe.com>
337S:	Supported
338F:	docs/misc/kconfig{,-language}.txt
339F:	xen/tools/kconfig/
340
341KDD DEBUGGER
342M:	Tim Deegan <tim@xen.org>
343S:	Odd Fixes
344F:	tools/debugger/kdd/
345
346KEXEC
347M:	Andrew Cooper <andrew.cooper3@citrix.com>
348S:	Supported
349F:	xen/common/{kexec,kimage}.c
350F:	xen/include/{kexec,kimage}.h
351F:	xen/arch/x86/machine_kexec.c
352F:	xen/arch/x86/x86_64/kexec_reloc.S
353
354LIBXENLIGHT
355M:	Ian Jackson <ian.jackson@eu.citrix.com>
356M:	Wei Liu <wl@xen.org>
357M:	Anthony PERARD <anthony.perard@citrix.com>
358S:	Supported
359F:	tools/libxl/
360F:	tools/xl/
361
362LIVEPATCH
363M:	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
364M:	Ross Lagerwall <ross.lagerwall@citrix.com>
365S:	Supported
366F:	docs/misc/livepatch.pandoc
367F:	tools/misc/xen-livepatch.c
368F:	xen/arch/*/livepatch*
369F:	xen/arch/*/*/livepatch*
370F:	xen/common/livepatch*
371F:	xen/include/asm-*/livepatch.h
372F:	xen/include/xen/livepatch*
373F:	xen/test/livepatch/*
374
375MINI-OS
376M:	Samuel Thibault <samuel.thibault@ens-lyon.org>
377R:	Wei Liu <wl@xen.org>
378S:	Supported
379L:	minios-devel@lists.xenproject.org
380T:	git https://xenbits.xenproject.org/git-http/mini-os.git
381F:	config/MiniOS.mk
382
383OCAML TOOLS
384M:	Christian Lindig <christian.lindig@citrix.com>
385M:	David Scott <dave@recoil.org>
386S:	Supported
387F:	tools/ocaml/
388
389OVMF UPSTREAM
390M:	Anthony PERARD <anthony.perard@citrix.com>
391M:	Wei Liu <wl@xen.org>
392S:	Supported
393T:	git https://xenbits.xenproject.org/git-http/ovmf.git
394
395POWER MANAGEMENT
396M:	Jan Beulich <jbeulich@suse.com>
397S:	Supported
398F:	xen/arch/x86/acpi/
399X:	xen/arch/x86/acpi/boot.c
400X:	xen/arch/x86/acpi/lib.c
401F:	xen/drivers/cpufreq/
402F:	xen/include/acpi/cpufreq/
403
404PUBLIC I/O INTERFACES AND PV DRIVERS DESIGNS
405M:	Juergen Gross <jgross@suse.com>
406S:	Supported
407F:	xen/include/public/io/
408
409PYTHON BINDINGS
410M:	Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com>
411S:	Supported
412F:	tools/python
413
414QEMU-DM
415M:	Ian Jackson <ian.jackson@eu.citrix.com>
416S:	Supported
417T:	git https://xenbits.xenproject.org/git-http/qemu-xen-traditional.git
418
419QEMU UPSTREAM
420M:	Stefano Stabellini <sstabellini@kernel.org>
421M:	Anthony Perard <anthony.perard@citrix.com>
422S:	Supported
423T:	git https://xenbits.xenproject.org/git-http/qemu-xen.git
424
425REMUS
426M:	Shriram Rajagopalan <rshriram@cs.ubc.ca>
427M:	Yang Hongyang <imhy.yang@gmail.com>
428S:	Maintained
429F:	docs/README.remus
430F:	tools/libxl/libxl_remus_*
431F:	tools/libxl/libxl_netbuffer.c
432F:	tools/libxl/libxl_nonetbuffer.c
433F:	tools/hotplug/Linux/remus-netbuf-setup
434F:	tools/hotplug/Linux/block-drbd-probe
435
436RTDS SCHEDULER
437M:	Dario Faggioli <dfaggioli@suse.com>
438M:	Meng Xu <mengxu@cis.upenn.edu>
439S:	Supported
440F:	xen/common/sched/rt.c
441
442SCHEDULING
443M:	George Dunlap <george.dunlap@citrix.com>
444M:	Dario Faggioli <dfaggioli@suse.com>
445S:	Supported
446F:	xen/common/sched/
447
448SEABIOS UPSTREAM
449M:	Wei Liu <wl@xen.org>
450S:	Supported
451T:	git https://xenbits.xenproject.org/git-http/seabios.git
452
453STUB DOMAINS
454M:	Samuel Thibault <samuel.thibault@ens-lyon.org>
455S:	Supported
456F:	config/Stubdom.mk.in
457F:	m4/stubdom.m4
458F:	stubdom/
459
460TEE MEDIATORS
461M:	Volodymyr Babchuk <volodymyr_babchuk@epam.com>
462S:	Supported
463F:	xen/arch/arm/tee/
464F:	xen/include/asm-arm/tee
465
466TOOLSTACK
467M:	Ian Jackson <ian.jackson@eu.citrix.com>
468M:	Wei Liu <wl@xen.org>
469S:	Supported
470F:	autogen.sh
471F:	config/*.in
472F:	install.sh
473F:	m4/
474F:	configure
475F:	docs/Makefile
476F:	docs/man/
477F:	stubdom/Makefile
478F:	*.ac
479F:	*/configure
480F:	*/*.ac
481F:	tools/
482
483VM EVENT, MEM ACCESS and MONITOR
484M:	Tamas K Lengyel <tamas@tklengyel.com>
485R:	Alexandru Isaila <aisaila@bitdefender.com>
486R:	Petre Pircalabu <ppircalabu@bitdefender.com>
487S:	Supported
488F:	tools/tests/xen-access
489F:	xen/arch/*/monitor.c
490F:	xen/arch/*/vm_event.c
491F:	xen/arch/arm/mem_access.c
492F:	xen/arch/x86/mm/mem_access.c
493F:	xen/arch/x86/hvm/monitor.c
494F:	xen/arch/x86/hvm/vm_event.c
495F:	xen/common/mem_access.c
496F:	xen/common/monitor.c
497F:	xen/common/vm_event.c
498F:	xen/include/*/mem_access.h
499F:	xen/include/*/monitor.h
500F:	xen/include/*/vm_event.h
501F:	xen/include/asm-x86/hvm/monitor.h
502F:	xen/include/asm-x86/hvm/vm_event.h
503
504VPCI
505M:	Roger Pau Monné <roger.pau@citrix.com>
506S:	Supported
507F:	xen/drivers/vpci/
508F:	xen/include/xen/vpci.h
509
510VTPM
511M:	Daniel De Graaf <dgdegra@tycho.nsa.gov>
512M:	Quan Xu <quan.xu0@gmail.com>
513S:	Supported
514F:	extras/mini-os/tpm*
515F:	extras/mini-os/include/tpm*
516F:	stubdom/vtpm/
517F:	stubdom/vtpmmgr/
518F:	docs/misc/vtpm-platforms.txt
519
520X86 ARCHITECTURE
521M:	Jan Beulich <jbeulich@suse.com>
522M:	Andrew Cooper <andrew.cooper3@citrix.com>
523R:	Wei Liu <wl@xen.org>
524R:	Roger Pau Monné <roger.pau@citrix.com>
525S:	Supported
526L:	xen-devel@lists.xenproject.org
527F:	xen/arch/x86/
528F:	xen/include/asm-x86/
529F:	xen/include/public/arch-x86/
530F:	xen/include/xen/lib/x86
531F:	xen/lib/x86
532F:	tools/firmware/hvmloader/
533F:	tools/firmware/rombios/
534F:	tools/firmware/vgabios/
535F:	tools/fuzz/cpu-policy/
536F:	tools/fuzz/x86_instruction_emulator/
537F:	tools/misc/xen-cpuid.c
538F:	tools/tests/cpu-policy/
539F:	tools/tests/x86_emulator/
540
541X86 I/O EMULATION
542M:	Paul Durrant <paul@xen.org>
543S:	Supported
544F:	xen/arch/x86/hvm/emulate.c
545F:	xen/arch/x86/hvm/intercept.c
546F:	xen/arch/x86/hvm/io.c
547F:	xen/arch/x86/hvm/ioreq.c
548F:	xen/include/asm-x86/hvm/emulate.h
549F:	xen/include/asm-x86/hvm/io.h
550F:	xen/include/asm-x86/hvm/ioreq.h
551F:	xen/include/public/hvm/ioreq.h
552
553X86 MEMORY MANAGEMENT
554M:	Jan Beulich <jbeulich@suse.com>
555M:	Andrew Cooper <andrew.cooper3@citrix.com>
556R:	George Dunlap <george.dunlap@citrix.com>
557S:	Supported
558F:	xen/arch/x86/mm/
559
560X86 MEMORY PAGING
561S:	Orphaned
562F:	xen/arch/x86/mm/mem_paging.c
563
564X86 MEMORY SHARING
565M:	Tamas K Lengyel <tamas@tklengyel.com>
566S:	Odd Fixes
567F:	xen/arch/x86/mm/mem_sharing.c
568F:	tools/tests/mem-sharing/
569
570X86 SHADOW PAGETABLES
571M:	Tim Deegan <tim@xen.org>
572S:	Maintained
573F:	xen/arch/x86/mm/shadow/
574
575X86 VIRIDIAN ENLIGHTENMENTS
576M:	Paul Durrant <paul@xen.org>
577M:	Wei Liu <wl@xen.org>
578S:	Supported
579F:	xen/arch/x86/guest/hyperv/
580F:	xen/arch/x86/hvm/viridian/
581F:	xen/include/asm-x86/guest/hyperv.h
582F:	xen/include/asm-x86/guest/hyperv-hcall.h
583F:	xen/include/asm-x86/guest/hyperv-tlfs.h
584F:	xen/include/asm-x86/hvm/viridian.h
585
586XENTRACE
587M:	George Dunlap <george.dunlap@citrix.com>
588S:	Supported
589F:	tools/xentrace/
590F:	xen/common/trace.c
591F:	xen/include/xen/trace.h
592
593XSM/FLASK
594M:	Daniel De Graaf <dgdegra@tycho.nsa.gov>
595S:	Supported
596F:	tools/flask/
597F:	xen/include/xsm/
598F:	xen/xsm/
599F:	docs/misc/xsm-flask.txt
600
601THE REST
602M:	Andrew Cooper <andrew.cooper3@citrix.com>
603M:	George Dunlap <george.dunlap@citrix.com>
604M:	Ian Jackson <ian.jackson@eu.citrix.com>
605M:	Jan Beulich <jbeulich@suse.com>
606M:	Julien Grall <julien@xen.org>
607M:	Stefano Stabellini <sstabellini@kernel.org>
608M:	Wei Liu <wl@xen.org>
609L:	xen-devel@lists.xenproject.org
610S:	Supported
611F:	*
612F:	*/
613V:	xen-maintainers-1
614