Extensions and Patches#
Edge Microvisor Toolkit leverages a collection of extensions and patches to provide more versatile deployment options and optimizations for Intel® silicon based AI solutions at the edge. Read on to learn more about the components and kernel patchsets used in the toolkit.
Extensions#
Deploying of Edge Microvisor Toolkit with Lightweight Kubernetes (K3s) requires additional extensions which are downloaded as docker images. Below is a list of components essential for scaled deployment of the toolkit.
Multus CNI#
A Container Network Interface (CNI) plugin for Kubernetes that enables you to attach multiple network interfaces to Kubernetes pods, which usually have only one network interface. For more details, refer to the GitHub page.
Intel Device Plugins for Kubernetes#
Intel GPU plugin provides access to discrete and integrated Intel GPU devices supported by the host kernel. It enables offloading compute operations of Kubernetes workload to GPU devices. It may be beneficial in such use cases as media transcoding and analytics, cloud gaming, AI training and inference. For more details, refer to the GitHub page.
Calico#
CNI Plugin
A plugin that enables you to use Calico for deployments based on Container Network Interface (CNI). It is available as a docker image.
Node
A CNI plugin that enables you to create a Layer 3 network for Kubernetes pods and assign a unique IP address for each. Node is available as a docker image
Kube controllers
A set of controllers that monitor the resources in the Kubernetes API (network, policies, nodes) and adjust Calico’s CNI configuration. Kube controllers are available as a docker image.
Patches#
Below is a list of
Intel not-upstreamed kernel features.
Check the following quilt patchsets:
PREEMPT_RT#
0001-Revert-sched-core-Remove-the-unnecessary-need_resche.rt
0001-hrtimer-Use-__raise_softirq_irqoff-to-raise-the-softirq.rt
0002-timers-Use-__raise_softirq_irqoff-to-raise-the-softirq.rt
0003-softirq-Use-a-dedicated-thread-for-timer-wakeups-on-PRE.rt
0004-serial-8250-Switch-to-nbcon-console.rt
0005-serial-8250-Revert-drop-lockdep-annotation-from-serial8.rt
0006-locking-rt-Remove-one-_cond_lock-in-RT-s-spin_trylock.rt
0007-locking-rt-Add-sparse-annotation-for-RCU.rt
0008-locking-rt-Annotate-unlock-followed-by-lock-for-sparse.rt
0009-drm-i915-Use-preempt_disable-enable_rt-where-recommende.rt
0010-drm-i915-Don-t-disable-interrupts-on-PREEMPT_RT-during-.rt
0011-drm-i915-Don-t-check-for-atomic-context-on-PREEMPT_RT.rt
0012-drm-i915-Disable-tracing-points-on-PREEMPT_RT.rt
0013-drm-i915-gt-Use-spin_lock_irq-instead-of-local_irq_disa.rt
0014-drm-i915-Drop-the-irqs_disabled-check.rt
0015-drm-i915-guc-Consider-also-RCU-depth-in-busy-loop.rt
0016-Revert-drm-i915-Depend-on-PREEMPT_RT.rt
0017-sched-Add-TIF_NEED_RESCHED_LAZY-infrastructure.rt
0018-sched-Add-Lazy-preemption-model.rt
0019-sched-Enable-PREEMPT_DYNAMIC-for-PREEMPT_RT.rt
0020-sched-x86-Enable-Lazy-preemption.rt
0021-sched-Add-laziest-preempt-model.rt
0022-sched-Fixup-the-IS_ENABLED-check-for-PREEMPT_LAZY.rt
0023-tracing-Remove-TRACE_FLAG_IRQS_NOSUPPORT.rt
0024-tracing-Record-task-flag-NEED_RESCHED_LAZY.rt
0025-sysfs-Add-sys-kernel-realtime-entry.rt
0001-serial-8250-enable-original-console-by-default.rt
0001-kernel-trace-Add-DISALLOW_TRACE_PRINTK-make-option.rt
0002-Revert-scripts-remove-bin2c.rt
0003-extend-uio-driver-to-supports-msix.rt
0004-virtio-add-VIRTIO_PMD-support.rt
0005-virt-acrn-Introduce-interfaces-for-PIO-device.rt
0006-Add-hypercall-to-access-MSR.rt
0007-Revert-spi-Remove-unused-function-spi_busnum_to_master.rt
0008-igc-add-CONFIG_IGC_TSN_TRACE-conditional-trace_printk-u.rt
0009-stmmac_pci-add-CONFIG_STMMAC_TSN_TRACE-conditional-trac.rt
0010-igb-prepare-for-AF_XDP-zero-copy-support.rt
0011-igb-Introduce-XSK-data-structures-and-helpers.rt
0012-igb-add-AF_XDP-zero-copy-Rx-support.rt
0013-igb-add-AF_XDP-zero-copy-Tx-support.rt
0014-igb-Add-BTF-based-metadata-for-XDP.rt
0015-ANDROID-trace-power-add-trace_clock_set_parent.rt
0016-ANDROID-trace-net-use-pK-for-kernel-pointers.rt
0017-ANDROID-trace-add-non-hierarchical-function_graph-optio.rt
0018-virtio-fix-VIRTIO_PMD-support.rt
0019-drm-i915-add-i915-perf-event-capacity.rt
0020-drm-xe-pm-allow-xe-with-CONFIG_PM.rt
Time-Sensitive Networking (TSN)#
0001-net-pcs-xpcs-enable-xpcs-reset-skipping.tsn
0002-net-stmmac-Bugfix-on-stmmac_interrupt-for-WOL.tsn
0003-net-phy-increase-gpy-loopback-test-delay.tsn
0004-net-stmmac-Resolve-poor-line-rate-after-switching-from.tsn
0005-net-phy-dp83867-perform-restart-AN-after-modifying-AN-.tsn
0006-stmmac-intel-Separate-ADL-N-and-RPL-P-device-ID-from-T.tsn
0007-net-stmmac-Adjust-mac_capabilities-for-Intel-mGbE-2.5G.tsn
0008-stmmac-intel-skip-xpcs-reset-for-2.5Gbps-on-Intel-Alde.tsn
0009-net-stmmac-add-check-for-2.5G-mode-to-prevent-MAC-capa.tsn
0010-stmmac-intel-Enable-PHY-WoL-in-ADL-N.tsn
0011-net-phy-reconfigure-PHY-WoL-when-WoL-option-is-enabled.tsn
0012-net-stmmac-fix-MAC-and-phylink-mismatch-issue-after-re.tsn
0013-net-stmmac-restructure-Rx-Tx-hardware-timestamping-fun.tsn
0014-net-stmmac-Add-per-packet-time-based-scheduling-for-XD.tsn
0015-net-stmmac-introduce-AF_XDP-ZC-RX-HW-timestamps.tsn
0016-net-stmmac-add-fsleep-in-HW-Rx-timestamp-checking-loop.tsn
0017-net-stmmac-select-PCS-negotiation-mode-according-to-th.tsn
0018-net-pcs-xpcs-re-initiate-clause-37-Auto-negotiation.tsn
0019-arch-x86-Add-IPC-mailbox-accessor-function-and-add-SoC.tsn
0020-net-stmmac-configure-SerDes-according-to-the-interface.tsn
0021-stmmac-intel-interface-switching-support-for-intel-pla.tsn
0022-net-stmmac-Set-mac_managed_pm-flag-from-stmmac-to-reso.tsn
0023-net-phylink-Add-module_exit.tsn
0024-net-stmmac-introduce-AF_XDP-ZC-TX-HW-timestamps.tsn
0025-net-sched-taprio-fix-too-early-schedules-switching.tsn
0026-net-sched-taprio-fix-cycle-time-adjustment-for-next-en.tsn
0027-net-sched-taprio-fix-impacted-fields-value-during-cycl.tsn
0028-net-sched-taprio-get-corrected-value-of-cycle_time-and.tsn
0029-xsk-add-txtime-field-in-xdp_desc-struct.tsn
0030-Revert-net-stmmac-silence-FPE-kernel-logs.tsn
0031-Revert-net-stmmac-support-fp-parameter-of-tc-taprio.tsn
0032-Revert-net-stmmac-support-fp-parameter-of-tc-mqprio.tsn
0033-Revert-net-stmmac-configure-FPE-via-ethtool-mm.tsn
0034-Revert-net-stmmac-refactor-FPE-verification-process.tsn
0035-Revert-net-stmmac-drop-stmmac_fpe_handshake.tsn
0036-Revert-net-stmmac-move-stmmac_fpe_cfg-to-stmmac_priv-d.tsn
0037-net-stmmac-add-FPE-preempt-setting-for-TxQ-preemptible.tsn
0038-taprio-Add-support-for-frame-preemption-offload.tsn
0039-net-stmmac-set-initial-EEE-policy-configuration.tsn
0040-net-phy-fix-phylib-s-dual-eee_enabled.tsn
0041-net-phy-ensure-that-genphy_c45_an_config_eee_aneg-sees.tsn
0042-net-phy-fix-phy_ethtool_set_eee-incorrectly-enabling-L.tsn
0001-igc-Set-the-RX-packet-buffer-size-for-TSN-mode.tsn
0002-igc-Only-dump-registers-if-configured-to-dump-HW-infor.tsn
0003-ethtool-Add-support-for-configuring-frame-preemption.tsn
0004-ethtool-Add-support-for-Frame-Preemption-verification.tsn
0005-igc-Add-support-for-enabling-frame-preemption-via-etht.tsn
0006-igc-Add-support-for-TC_SETUP_PREEMPT.tsn
0007-igc-Add-support-for-setting-frame-preemption-configura.tsn
0008-igc-Add-support-for-Frame-Preemption-verification.tsn
0009-igc-Add-support-for-exposing-frame-preemption-stats-re.tsn
0010-igc-Optimize-the-packet-buffer-utilization.tsn
0011-igc-Add-support-for-enabling-all-packets-to-be-receive.tsn
0012-igc-Add-support-for-DMA-timestamp-for-non-PTP-packets.tsn
0013-bpf-add-btf-register-unregister-API.tsn
0014-net-core-XDP-metadata-BTF-netlink-API.tsn
0015-rtnetlink-Fix-unchecked-return-value-of-dev_xdp_query_.tsn
0016-rtnetlink-Add-return-value-check.tsn
0017-tools-bpf-Query-XDP-metadata-BTF-ID.tsn
0018-tools-bpf-Add-xdp-set-command-for-md-btf.tsn
0019-igc-Add-BTF-based-metadata-for-XDP.tsn
0020-igc-Enable-HW-RX-Timestamp-for-AF_XDP-ZC.tsn
0021-igc-Take-care-of-DMA-timestamp-rollover.tsn
0022-igc-Add-SO_TXTIME-for-AF_XDP-ZC.tsn
0023-igc-Reodering-the-empty-packet-buffers-and-descriptors.tsn
0024-Revert-igc-Add-support-for-PTP-.getcyclesx64.tsn
0025-core-Introduce-netdev_tc_map_to_queue_mask.tsn
0026-taprio-Replace-tc_map_to_queue_mask.tsn
0027-mqprio-Add-support-for-frame-preemption-offload.tsn
0030-igc-Reduce-retry-count-to-a-more-reasonable-number.tsn
0001-igc-Enable-HW-TX-Timestamp-for-AF_XDP-ZC.tsn
0002-igc-Enable-trace-for-HW-TX-Timestamp-AF_XDP-ZC.tsn
0003-igc-Remove-the-CONFIG_DEBUG_MISC-condition-for-trace.tsn
0006-Revert-net-stmmac-set-initial-EEE-policy-configurati.tsn
0001-net-phy-Set-eee_cfg.eee_enabled-according-to-PHY.tsn
0001-Revert-net-stmmac-add-FPE-preempt-setting-for-TxQ-pree.tsn
0002-Reapply-net-stmmac-move-stmmac_fpe_cfg-to-stmmac_priv-.tsn
0003-Reapply-net-stmmac-drop-stmmac_fpe_handshake.tsn
0004-Reapply-net-stmmac-refactor-FPE-verification-process.tsn
0005-Reapply-net-stmmac-configure-FPE-via-ethtool-mm.tsn
0006-Reapply-net-stmmac-support-fp-parameter-of-tc-mqprio.tsn
0007-Reapply-net-stmmac-support-fp-parameter-of-tc-taprio.tsn
0008-Reapply-net-stmmac-silence-FPE-kernel-logs.tsn
SR-IOV#
0001-drm-i915-mtl-Add-C10-table-for-HDMI-Clock-25175.sriov
0002-drm-i915-mtl-Copy-c10-phy-pll-sw-state-from-master-t.sriov
0003-drm-i915-guc-Define-MAX_DWORDS-for-CTB-HXG-Message.sriov
0004-drm-i915-call-taint_for_CI-on-FLR-failure.sriov
0005-drm-i915-huc-load-HuC-via-non-POR-GSC-engine-flow.sriov
0006-drm-i915-SR-IOV-Enabling-and-Support.sriov
0007-Revert-drm-i915-move-platform_engine_mask-and-memory.sriov
0008-drm-i915-gt-Enable-the-early-register-to-working-win.sriov
0009-drm-i915-gt-Modify-the-adls-mocs-table-same-as-tgl-m.sriov
0010-drm-i915-Bypass-gem_set_tiling-and-gem_get_tiling.sriov
0011-drm-i915-enable-CCS-on-DG1-and-TGL-for-testing.sriov
0012-drm-i915-force-VF-using-v70-GuC-API.sriov
0013-drm-i915-fix-regression-on-sriov-vf-failures-due-to-.sriov
0014-drm-i915-add-null-pointer-protection-inside-intel_fb.sriov
0015-drm-i915-use-the-original-Wa_14010685332-for-PCH_ADP.sriov
0016-drm-i915-fix-bitmap-clear-API-region-start-issue.sriov
0017-drm-i915-iov-Expose-early-runtime-registers-for-MTL.sriov
0018-drm-i915-gt-fix-empty-workaround-list-access-issue.sriov
0019-drm-i915-mtl-Add-module-parameter-override-for-Wa_16.sriov
0020-drm-i915-mtl-Provide-user-the-option-to-disable-ccs.sriov
0021-drm-i915-mtl-Turn-on-Wa_16019325821-Wa_14019159160-b.sriov
0022-drm-i915-pf-Use-GPU-to-set-PTE-owner.sriov
0023-drm-i915-pf-Use-GPU-to-set-PTE-owner-on-platforms-wi.sriov
0024-drm-i915-access-ddc-pointer-only-if-it-is-available.sriov
0025-drm-i915-guc-Upgrade-GuC-fw-version-to-70.20.0.sriov
0026-drm-i915-iov-Adding-runtime-reg-for-MTL-HuC-status.sriov
0027-drm-i915-guc-Upgrade-GuC-fw-version-to-70.29.2.sriov
0028-drm-i915-Re-add-enable_rc6-modparam.sriov
0032-drm-virtio-freeze-and-restore-hooks-to-support-suspe.sriov
0033-drm-virtio-save-and-restore-virtio_gpu_objects.sriov
0001-drm-virtio-Use-drm_gem_plane_helper_prepare_fb.patch
0034-drm-i915-pf-Introduce-i915_ggtt_save_ptes-and-i915_g.sriov
0035-drm-i915-iov-Introduce-VFs-shadow-copy-of-GGTT-on-PF.sriov
0036-drm-i915-iov-Shadow-GGTT-mock-selftestes.sriov
0037-drm-i915-gt-Don-t-support-GGTT-save-restore-via-BAR-.sriov
0038-drm-i915-pf-Add-helpers-for-saving-loading-GGTT-stat.sriov
0039-drm-i915-pf-Handle-VF-pause-complete-notification.sriov
0040-drm-i915-pf-Allow-to-save-restore-GuC-VF-state.sriov
0041-drm-i915-pf-Save-and-restore-VFs-state-during-S2idle.sriov
0042-drm-i915-pf-Skip-VF-save-restore-on-S2idle-S3-S4-if-.sriov
0043-drm-i915-pf-Start-use-shadow-GGTT-to-save-restore-du.sriov
0044-drm-i915-pf-Export-API-to-be-used-by-i915-vfio-pci.sriov
0045-drm-i915-iov-Flag-which-tells-whether-PAUSE-is-in-pr.sriov
0046-drm-i915-iov-Remember-run-state-on-suspend-and-resto.sriov
0047-drm-i915-pf-Pause-VF-before-restore-GuC-state-after-.sriov
0048-drm-i915-iov-fix-i915-sriov-build-issue.sriov
0001-drm-i915-CTB-TLB-invalidation-fix-on-VM.sriov
0002-vfio-i915-Add-vfio_pci-driver-for-Intel-graphics.sriov
0003-drm-i915-guc-Upgrade-GuC-fw-version-to-70.36.0.sriov
0001-drm-i915-Fix-logic-for-GUC-Process.sriov
0001-vfio-i915-Add-support-for-MMIO-save-restore.sriov
0002-drm-i915-SR-IOV-Save-Restore-Feature-support.sriov
0001-i915-Enable-w-a-16026508708.sriov
0001-virtio-hookup-irq_get_affinity-callback.sriov
0002-virtio-break-and-reset-virtio-devices-on-device_shut.sriov
0003-virtgpu-don-t-reset-on-shutdown.sriov
0004-drm-virtio-implement-virtio_gpu_shutdown.sriov
0001-drm-virtio-Wait-until-the-control-and-cursor-queues-.sriov
0001-drm-i915-move-sriov-selftest-buffer-out-of-stack.sriov
0001-drm-i915-Do-not-advertise-about-CCS.sriov
0001-Revert-drm-i915-Do-not-advertise-about-CCS.sriov
DRM#
0001-drm-i915-enable-guc-submission-for-ADLs-by-default.drm
0001-drm-i915-disable-a-couple-of-RT-functions-if-RT-is-d.drm
0001-drm-i915-disable-dGPU-support-with-RT-kernel.drm
0001-i915-Update-GUC-to-v70.44.1-for-i915-platforms.drm
0001-Revert-drm-i915-disable-dGPU-support-with-RT-kernel.drm
0001-drm-i915-gt-Avoid-using-masked-workaround-for-CCS_MODE.drm
0002-drm-i915-gt-Move-the-CCS-mode-variable-to-a-global-pos.drm
0003-drm-i915-gt-Allow-the-creation-of-multi-mode-CCS-masks.drm
0004-drm-i915-gt-Refactor-uabi-engine-class-instance-list-c.drm
0005-drm-i915-gem-Mark-and-verify-UABI-engine-validity.drm
0006-drm-i915-gt-Introduce-for_each_enabled_engine-and-appl.drm
0007-drm-i915-gt-Manage-CCS-engine-creation-within-UABI-exp.drm
0008-drm-i915-gt-Remove-cslices-mask-value-from-the-CCS-str.drm
0009-drm-i915-gt-Expose-the-number-of-total-CCS-slices.drm
0010-drm-i915-gt-Store-engine-related-sysfs-kobjects.drm
0011-drm-i915-gt-Store-active-CCS-mask.drm
0012-drm-i915-Protect-access-to-the-UABI-engines-list-with-.drm
0013-drm-i915-gt-Isolate-single-sysfs-engine-file-creation.drm
0014-drm-i915-gt-Implement-creation-and-removal-routines-fo.drm
0015-drm-i915-gt-Allow-the-user-to-change-the-CCS-mode-thro.drm
0016-drm-i915-gt-Refactor-CCS-mode-handling-and-improve-app.drm
0017-drm-i915-no-waiting-for-page-flip-in-vpp-case.drm
0001-Remove-unneeded-files.patch
0001-i915-gt-Upgrade-GuC-70.44.1-70.49.4.drm
0001-drm-i915-no-force-probe-needed-for-mtl-platform.drm