Go to file
yichongt 7159ad071b virt: acrn: Introduce interfaces for PIO region passthrough
PIO region passthrough enables an OS in a virtual machine to directly
access a PIO device in the host. It promises almost the native
performance, which is required in performance-critical scenarios of
ACRN.

ACRN hypervisor will pass through most resource to Service VM at the
begining except those pre-allocated to hypervisor itself and pre-launched
VM. GPA and HPA of all these passthrough resource are identical mapped in
Service VM. In this case, user space program can manipulate the PIO region
in Service VM as PIO region in Host, such as delivering GPA in Service VM
to hypervisor to assign PIO region to other post launched VM.

HSM provides the following ioctls:
  - Assign - ACRN_IOCTL_ASSIGN_PIO_REGION
    Pass data struct acrn_pio_region from userspace to the hypervisor, and
    inform the hypervisor to assign a PIO region to a User VM.

  - De-assign - ACRN_IOCTL_DEASSIGN_PIO_REGION
    Pass data struct acrn_pio_region from userspace to the hypervisor, and
    inform the hypervisor to de-assign a PIO region from a User VM.

These hypercalls are for ACPI device passthrough function of ACRN.
Now ACRN only support legacy UART which has a PIO region. Before passing
through this PIO region to a post-launched VM, ACRN device model would
unbind UART device from Service VM through sysfs node
/sys/bus/pnp/drivers/serial/unbind.

Tracked-On: projectacrn/acrn-hypervisor#8635

Signed-off-by: Yichong Tang <yichong.tang@intel.com>
2024-07-31 15:40:11 +08:00
Documentation This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
LICENSES LICENSES/LGPL-2.1: Add LGPL-2.1-or-later as valid identifiers 2021-12-16 14:33:10 +01:00
arch This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
block This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
certs certs: Fix build error when PKCS#11 URI contains semicolon 2023-02-09 11:28:11 +01:00
crypto Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
drivers virt: acrn: Introduce interfaces for PIO region passthrough 2024-07-31 15:40:11 +08:00
fs This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
include virt: acrn: Introduce interfaces for PIO region passthrough 2024-07-31 15:40:11 +08:00
init update workarounds for gcc "asm goto" issue 2024-02-23 09:12:28 +01:00
io_uring io_uring/net: fix multishot accept overflow handling 2024-02-23 09:12:43 +01:00
ipc ipc: fix memory leak in init_mqueue_fs() 2022-12-31 13:32:01 +01:00
kernel This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
lib lib/string_helpers: Introduce parse_int_array() 2024-04-24 22:20:32 +02:00
mm This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
net This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
rust rust: allocator: Prevent mis-aligned allocation 2023-08-11 12:08:18 +02:00
samples This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
scripts bpf, scripts: Correct GPL license name 2024-03-01 13:26:35 +01:00
security This is the 6.1.80 stable release 2024-03-22 01:33:06 +08:00
sound ASoC: mediatek: Drop da7219_aad_jack_det() usage 2024-04-25 15:19:55 +08:00
tools ALSA: pcm: Introduce MSBITS subformat interface 2024-04-24 22:20:29 +02:00
usr usr/gen_init_cpio.c: remove unnecessary -1 values from int file 2022-10-03 14:21:44 -07:00
virt kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add() 2023-09-13 09:42:46 +02:00
.clang-format inet: ping: use hlist_nulls rcu iterator during lookup 2022-12-01 12:42:46 +01:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore Kbuild: add Rust support 2022-09-28 09:02:20 +02:00
.mailmap 9 hotfixes. 6 for MM, 3 for other areas. Four of these patches address 2022-12-10 17:10:52 -08:00
.rustfmt.toml rust: add `.rustfmt.toml` 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Remove Michal Marek from Kbuild maintainers 2022-11-16 14:53:00 +09:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS Merge branch 'my/v6.1.77' into lts2022/linux 2024-02-28 13:19:46 +08:00
Makefile Linux 6.1.80 2024-03-01 13:26:39 +01:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00
kernel_config_service_vm config: Add CONFIG_DEVMEM=y to service VM config 2024-05-30 10:51:22 +08:00
kernel_config_user_vm Add CONFIG_IGC=y to user vm config 2024-05-30 10:51:22 +08:00
security.md Add security.md file 2023-10-27 11:25:13 -04:00

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.