History log of /src/sys/arch/xen/include/i386 |
Revision | Date | Author | Comments |
1.2 | 11-Jan-2008 |
bouyer | branches: 1.2.2; 1.2.4; 1.2.12; Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
|
1.1 | 10-Jan-2008 |
bouyer | branches: 1.1.2; file bus_private.h was initially added on branch bouyer-xeni386.
|
1.1.2.1 | 10-Jan-2008 |
bouyer | Change xeni386 build to match xenamd64: - machine/ points to xen/include/i386 - remove includes that were identical to the i386/include/ ones; the build will find them though the xen-ma/machine link. - include xen files using xen/ not machine/
|
1.2.12.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.2.12.1 | 11-Jan-2008 |
matt | file bus_private.h was added on branch matt-armv6 on 2008-03-23 02:04:30 +0000
|
1.2.4.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.2.4.1 | 11-Jan-2008 |
mjf | file bus_private.h was added on branch mjf-devfs on 2008-02-18 21:05:20 +0000
|
1.2.2.2 | 21-Jan-2008 |
yamt | sync with head
|
1.2.2.1 | 11-Jan-2008 |
yamt | file bus_private.h was added on branch yamt-lazymbuf on 2008-01-21 09:40:28 +0000
|
1.21 | 25-Apr-2020 |
bouyer | Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM guests in GENERIC. Xen support can be disabled at runtime with boot -c disable hypervisor
|
1.20 | 21-Apr-2020 |
jdolecek | convert to newer HYPERVISOR_physdev_op() interface, now command and the arg are separate arguments - this is needed for newer physdev_op commands
remove code for PHYSDEVOP_IRQ_UNMASK_NOTIFY, it is obsolete since interface version 0x00030202 and is unsupported by newer versions of Xen
confirmed working on amd64 Dom0, i386 compile-tested only
|
1.19 | 10-Feb-2019 |
cherry | branches: 1.19.10; Catchup hypercall interfaces for HYPERVISOR_sched_op which use arguments to __XEN_INTERFACE_VERSION__ >= 0x00030201
We've been using the sched_op_compat API with sched_op arguments.
fixes PR port-xen/53965
|
1.18 | 02-Feb-2019 |
cherry | Switch NetBSD/xen to use XEN api tag RELEASE-4.11.1
The headers for this api are in sys/external/mit/xen-include-public/dist/
|
1.17 | 24-Jan-2019 |
cherry | The event_channel_op hypercall uses a newer API since __XEN_INTERFACE_VERSION__ 0x00030202
Since hvm_op only supports event_channel_op via the newer API, we can't get away with our current event_channel_op_compat shim.
We thus introduce the new API to our internal hypercall C API interface.
This change should have no effect on the PV kernels, since they will continue to use the pre 0x00030202 API.
|
1.16 | 26-Jul-2018 |
maxv | Remove the non-PAE-i386 code of Xen. The branches are reordered so that __x86_64__ comes first, eg:
#if defined(PAE) /* i386+PAE */ #elif defined(__x86_64__) /* amd64 */ #else /* i386 */ #endif
becomes
#ifdef __x86_64__ /* amd64 */ #else /* i386+PAE */ #endif
Tested on i386pae-domU and amd64-dom0.
|
1.15 | 27-Jun-2012 |
jym | branches: 1.15.38; 1.15.40; Retire XEN_COMPAT_030001 as detailed on port-xen@:
http://mail-index.netbsd.org/port-xen/2012/06/25/msg007431.html
The xen_p2m API comes next.
ok bouyer@. Tested on i386 PAE and amd64 (Xen 3.3 on private test bed, and Xen 3.4 for Amazon EC2).
FWIW, Amazon always reported:
hypervisor0 at mainbus0: Xen version 3.4.3-kaos_t1micro
multiple times for Europe and US West-1, so I guess they are now at 3.4 (32 and 64 bits).
|
1.14 | 07-Dec-2011 |
cegger | switch from xen3-public to xen-public.
|
1.13 | 07-Dec-2011 |
cegger | switch from xen3-public to xen-public.
|
1.12 | 07-Jun-2011 |
bouyer | branches: 1.12.2; 1.12.6; Don't call psignal() without holding proc_lock. This is the cause of the reboot of PR port-xen/45028 Now that Xen2 is gone, handle FPU context switches the same way as amd64. This makes all tests in /usr/tests/lib/libc/ieeefp pass.
|
1.11 | 30-Mar-2011 |
jym | branches: 1.11.2; Add the HYPERVISOR_sysctl() hypercall.
Although the hypercall arguments (like struct sysctl_readconsole) are not compatible between different XEN_SYSCTL_INTERFACE_VERSIONs (one of the reasons why the sysctl calls should only be used by xentools directly), it's still practical to have when one wants to query Xen's dmesg from ddb(4) in case of a panic.
Note: additional code is needed for readconsole() functionality, but adding the hypercall should not cause any harm.
|
1.10 | 19-Oct-2009 |
bouyer | branches: 1.10.4; 1.10.6; Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen for the booring work !
|
1.9 | 29-Jul-2009 |
cegger | remove Xen2 support. ok bouyer@
|
1.8 | 13-Nov-2008 |
cegger | branches: 1.8.4; add platform_op hypercall (already exists for amd64)
|
1.7 | 13-Nov-2008 |
cegger | prepare move to new interface
|
1.6 | 24-Oct-2008 |
jym | branches: 1.6.2; - add mfn_to_pfn() and pfn_to_mfn() macros, for rapid conversion between pseudo-physical and machine frame numbers.
- add HYPERVISOR_crash() for i386 and amd64. Intended to be used by a domain to notify Xen that it crashed on purpose, and request a dump (if applicable).
No functional changes intended.
Reviewed by Christoph (cegger@).
|
1.5 | 21-Oct-2008 |
cegger | catch up with amd64: add hvm_op hypercall
|
1.4 | 25-Aug-2008 |
cegger | Add machine check hypercall. There will be one file where this will be used. In the initialization a hypervisor version check will verify, if this feature is usable or not.
|
1.3 | 23-Jan-2008 |
bouyer | branches: 1.3.2; 1.3.8; 1.3.10; 1.3.14; 1.3.16; 1.3.20; Merge the bouyer-xeni386 branch. This brings in PAE support to NetBSD xeni386 (domU only). PAE support is enabled by 'options PAE', see the new XEN3PAE_DOMU and INSTALL_XEN3PAE_DOMU kernel config files.
See the comments in arch/i386/include/{pte.h,pmap.h} to see how it works. In short, we still handle it as a 2-level MMU, with the second level page directory being 4 pages in size. pmap switching is done by switching the L2 pages in the L3 entries, instead of loading %cr3. This is almost required by Xen, which handle the last L2 page (the one mapping 0xc0000000 - 0xffffffff) in a very special way. But this approach should also work for native PAE support if ever supported (in fact, the pmap should almost suport native PAE, what's missing is bootstrap code in locore.S).
|
1.2 | 11-Jan-2008 |
bouyer | branches: 1.2.2; Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
|
1.1 | 10-Jan-2008 |
bouyer | branches: 1.1.2; file hypercalls.h was initially added on branch bouyer-xeni386.
|
1.1.2.4 | 20-Jan-2008 |
bouyer | Remove debug printk()
|
1.1.2.3 | 13-Jan-2008 |
bouyer | Make non-PAE kernels build again.
|
1.1.2.2 | 13-Jan-2008 |
bouyer | Work in progress on xeni386 PAE support: Make xeni386 build with a 64bit paddr_t. For this vaddr_t vs paddr_t vs pointers usages had to be clarified. If 'options PAE' is present in a Xen3 kernel, switch paddr_t, pd_entry_t and pt_entry_t to 64bits, and add the PAE entry in the __xen_guest ELF section.
|
1.1.2.1 | 10-Jan-2008 |
bouyer | Change xeni386 build to match xenamd64: - machine/ points to xen/include/i386 - remove includes that were identical to the i386/include/ ones; the build will find them though the xen-ma/machine link. - include xen files using xen/ not machine/
|
1.2.2.3 | 04-Feb-2008 |
yamt | sync with head.
|
1.2.2.2 | 21-Jan-2008 |
yamt | sync with head
|
1.2.2.1 | 11-Jan-2008 |
yamt | file hypercalls.h was added on branch yamt-lazymbuf on 2008-01-21 09:40:29 +0000
|
1.3.20.2 | 13-Dec-2008 |
haad | Update haad-dm branch to haad-dm-base2.
|
1.3.20.1 | 19-Oct-2008 |
haad | Sync with HEAD.
|
1.3.16.1 | 18-Sep-2008 |
wrstuden | Sync with wrstuden-revivesa-base-2.
|
1.3.14.3 | 11-Mar-2010 |
yamt | sync with head
|
1.3.14.2 | 19-Aug-2009 |
yamt | sync with head.
|
1.3.14.1 | 04-May-2009 |
yamt | sync with head.
|
1.3.10.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.3.10.1 | 23-Jan-2008 |
matt | file hypercalls.h was added on branch matt-armv6 on 2008-03-23 02:04:30 +0000
|
1.3.8.2 | 17-Jan-2009 |
mjf | Sync with HEAD.
|
1.3.8.1 | 28-Sep-2008 |
mjf | Sync with HEAD.
|
1.3.2.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.3.2.1 | 23-Jan-2008 |
mjf | file hypercalls.h was added on branch mjf-devfs on 2008-02-18 21:05:20 +0000
|
1.6.2.1 | 19-Jan-2009 |
skrll | Sync with HEAD.
|
1.8.4.6 | 27-Aug-2011 |
jym | Sync with HEAD. Most notably: uvm/pmap work done by rmind@, and MP Xen work of cherry@.
No regression observed on suspend/restore.
|
1.8.4.5 | 02-May-2011 |
jym | Sync with head.
|
1.8.4.4 | 30-Mar-2011 |
jym | Sync with my commits in HEAD.
|
1.8.4.3 | 01-Nov-2009 |
jym | - Upgrade suspend/resume code to comply with Xen2 removal. - Add support for PAE domUs suspend/resume. - Fix an issue regarding initialization of the xbd ring I/O that could end badly during resume, with invalid block operations submitted to dom0 backend.
NetBSD supports PAE under x86_32 by considering the L2 page as being 4 pages long instead of 1.
Xen validates the page types during resume. Sadly, the hypervisor handles alternative recursive mappings (== PG/PD entries pointing to pages other than self) inadequately, which could lead to incorrect page pinning.
As a result, the important change with this patch is to clear these alternative mappings during suspend, and reset them back to their former self upon resume. For PAE, approx. all 4 PDIR_SLOT_PTEs could be considered as alternative recursive mappings.
See comments in pmap.c for further details.
Now, let the testing and bug hunting begin.
|
1.8.4.2 | 01-Nov-2009 |
jym | Sync with HEAD.
|
1.8.4.1 | 31-May-2009 |
jym | Modifications for the Xen suspend/migrate/resume branch:
- introduce xenbus_device_{suspend,resume}() functions. These are routines used to suspend/resume MI parts of the Xenbus device interfaces, like updating frontend/backend devices' paths found in XenStore.
- introduce HYPERVISOR_sysctl(), an hypercall used only by Xentools to obtain information from hypervisor (listing VMs, printing console, etc.). I use it to query xenconsole from ddb(), as a last resort in case of a panic() in dom0 (xm being not available). Currently unused in the branch; could be, if requested.
- disable the rwlock(9) used to protect code that could use transient MFNs. It could trigger nasty context switches in place it should not to.
- fix some bugs in the xennet/xbd suspend/resume pmf(9) handlers.
- following XenSource's design, talk_to_otherend() is now called watch_otherend(), and free_otherend_details() is used by Xenbus device suspend/resume routines.
- some slight modifications in pmap regarding APDP. Introduce an inline function (pmap_unmap_apdp_pde()) that clears APDP entry for the current pmap.
- similarly, implement pmap_unmap_all_apdp_pdes() that iterates through all pmaps and tears down APDP, as Xen does not handle them properly.
TODO/XXX:
- pmap_unmap_apdp_pde() does not handle APDP shadow entry of PAE. It will, once I figure out how PAE uses it.
- revisit the pmap locking issue regarding transient MFNs. As NetBSD does not use kernel preemption and MP for Xen, this could be skipped momentarily. See http://mail-index.netbsd.org/port-xen/2009/04/27/msg004903.html for details.
- fix a bug regarding grant tables which could technically DoS a dom0 if ridiculously high consumer/producer indexes are passed down in the ring during a resume.
All in all, once the grant table index issue and APDP PAE are fixed, next step is to torture test this branch.
Tested under i386 PAE and non-PAE, Xen3 dom0 and domU. amd64 is only compile tested.
|
1.10.6.1 | 06-Jun-2011 |
jruoho | Sync with HEAD.
|
1.10.4.2 | 12-Jun-2011 |
rmind | sync with head
|
1.10.4.1 | 21-Apr-2011 |
rmind | sync with head
|
1.11.2.1 | 23-Jun-2011 |
cherry | Catchup with rmind-uvmplock merge.
|
1.12.6.1 | 18-Feb-2012 |
mrg | merge to -current.
|
1.12.2.2 | 30-Oct-2012 |
yamt | sync with head
|
1.12.2.1 | 17-Apr-2012 |
yamt | sync with head
|
1.15.40.1 | 10-Jun-2019 |
christos | Sync with HEAD
|
1.15.38.2 | 26-Jan-2019 |
pgoyette | Sync with HEAD
|
1.15.38.1 | 28-Jul-2018 |
pgoyette | Sync with HEAD
|
1.19.10.1 | 16-Apr-2020 |
bouyer | Reorganise sources to make it possible to include Xen PVHVM support in native kernels. Among others: - move xen/include/amd64/hypercall.h to amd64/include/xen and xen/include/i386/hypercall.h to i386/include/xen - exclude some native files from the build for xenpv - add xen to "machine" config statement for amd64 and i386 - split arch/xen/conf/files.xen to arch/xen/conf/files.xen (for pv drivers) and arch/xen/conf/files.xen.pv (for full pv support) - add GENERIC_XENHVM kernel config which includes GENERIC and add Xen PV drivers.
|
1.2 | 11-Jan-2008 |
bouyer | branches: 1.2.2; 1.2.4; 1.2.12; Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
|
1.1 | 10-Jan-2008 |
bouyer | branches: 1.1.2; file i82093var.h was initially added on branch bouyer-xeni386.
|
1.1.2.1 | 10-Jan-2008 |
bouyer | Change xeni386 build to match xenamd64: - machine/ points to xen/include/i386 - remove includes that were identical to the i386/include/ ones; the build will find them though the xen-ma/machine link. - include xen files using xen/ not machine/
|
1.2.12.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.2.12.1 | 11-Jan-2008 |
matt | file i82093var.h was added on branch matt-armv6 on 2008-03-23 02:04:30 +0000
|
1.2.4.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.2.4.1 | 11-Jan-2008 |
mjf | file i82093var.h was added on branch mjf-devfs on 2008-02-18 21:05:20 +0000
|
1.2.2.2 | 21-Jan-2008 |
yamt | sync with head
|
1.2.2.1 | 11-Jan-2008 |
yamt | file i82093var.h was added on branch yamt-lazymbuf on 2008-01-21 09:40:29 +0000
|
1.2 | 11-Jan-2008 |
bouyer | branches: 1.2.2; 1.2.4; 1.2.12; Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
|
1.1 | 10-Jan-2008 |
bouyer | branches: 1.1.2; file i82489var.h was initially added on branch bouyer-xeni386.
|
1.1.2.1 | 10-Jan-2008 |
bouyer | Change xeni386 build to match xenamd64: - machine/ points to xen/include/i386 - remove includes that were identical to the i386/include/ ones; the build will find them though the xen-ma/machine link. - include xen files using xen/ not machine/
|
1.2.12.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.2.12.1 | 11-Jan-2008 |
matt | file i82489var.h was added on branch matt-armv6 on 2008-03-23 02:04:30 +0000
|
1.2.4.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.2.4.1 | 11-Jan-2008 |
mjf | file i82489var.h was added on branch mjf-devfs on 2008-02-18 21:05:20 +0000
|
1.2.2.2 | 21-Jan-2008 |
yamt | sync with head
|
1.2.2.1 | 11-Jan-2008 |
yamt | file i82489var.h was added on branch yamt-lazymbuf on 2008-01-21 09:40:29 +0000
|
1.2 | 11-Jan-2008 |
bouyer | branches: 1.2.2; 1.2.4; 1.2.12; Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
|
1.1 | 10-Jan-2008 |
bouyer | branches: 1.1.2; file intr.h was initially added on branch bouyer-xeni386.
|
1.1.2.1 | 10-Jan-2008 |
bouyer | Change xeni386 build to match xenamd64: - machine/ points to xen/include/i386 - remove includes that were identical to the i386/include/ ones; the build will find them though the xen-ma/machine link. - include xen files using xen/ not machine/
|
1.2.12.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.2.12.1 | 11-Jan-2008 |
matt | file intr.h was added on branch matt-armv6 on 2008-03-23 02:04:30 +0000
|
1.2.4.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.2.4.1 | 11-Jan-2008 |
mjf | file intr.h was added on branch mjf-devfs on 2008-02-18 21:05:20 +0000
|
1.2.2.2 | 21-Jan-2008 |
yamt | sync with head
|
1.2.2.1 | 11-Jan-2008 |
yamt | file intr.h was added on branch yamt-lazymbuf on 2008-01-21 09:40:30 +0000
|
1.2 | 11-Jan-2008 |
bouyer | branches: 1.2.2; 1.2.4; 1.2.12; Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
|
1.1 | 10-Jan-2008 |
bouyer | branches: 1.1.2; file pci_machdep.h was initially added on branch bouyer-xeni386.
|
1.1.2.1 | 10-Jan-2008 |
bouyer | Change xeni386 build to match xenamd64: - machine/ points to xen/include/i386 - remove includes that were identical to the i386/include/ ones; the build will find them though the xen-ma/machine link. - include xen files using xen/ not machine/
|
1.2.12.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.2.12.1 | 11-Jan-2008 |
matt | file pci_machdep.h was added on branch matt-armv6 on 2008-03-23 02:04:30 +0000
|
1.2.4.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.2.4.1 | 11-Jan-2008 |
mjf | file pci_machdep.h was added on branch mjf-devfs on 2008-02-18 21:05:20 +0000
|
1.2.2.2 | 21-Jan-2008 |
yamt | sync with head
|
1.2.2.1 | 11-Jan-2008 |
yamt | file pci_machdep.h was added on branch yamt-lazymbuf on 2008-01-21 09:40:30 +0000
|
1.2 | 11-Jan-2008 |
bouyer | branches: 1.2.2; 1.2.4; 1.2.12; Merge the bouyer-xeni386 branch to head, at tag bouyer-xeni386-merge1 (the branch is still active and will see i386PAE support developement). Sumary of changes: - switch xeni386 to the x86/x86/pmap.c, and the xen/x86/x86_xpmap.c pmap bootstrap. - merge back most of xen/i386/ to i386/i386 - change the build to reduce diffs between i386 and amd64 in file locations - remove include files that were identical to the i386/amd64 counterparts, the build will find them via the xen-ma/machine link.
|
1.1 | 10-Jan-2008 |
bouyer | branches: 1.1.2; file pic.h was initially added on branch bouyer-xeni386.
|
1.1.2.1 | 10-Jan-2008 |
bouyer | Change xeni386 build to match xenamd64: - machine/ points to xen/include/i386 - remove includes that were identical to the i386/include/ ones; the build will find them though the xen-ma/machine link. - include xen files using xen/ not machine/
|
1.2.12.2 | 23-Mar-2008 |
matt | sync with HEAD
|
1.2.12.1 | 11-Jan-2008 |
matt | file pic.h was added on branch matt-armv6 on 2008-03-23 02:04:30 +0000
|
1.2.4.2 | 18-Feb-2008 |
mjf | Sync with HEAD.
|
1.2.4.1 | 11-Jan-2008 |
mjf | file pic.h was added on branch mjf-devfs on 2008-02-18 21:05:20 +0000
|
1.2.2.2 | 21-Jan-2008 |
yamt | sync with head
|
1.2.2.1 | 11-Jan-2008 |
yamt | file pic.h was added on branch yamt-lazymbuf on 2008-01-21 09:40:30 +0000
|