diff --git a/crates/xen/xenclient/examples/boot.rs b/crates/xen/xenclient/examples/boot.rs index 4e7cae6..7bd0f93 100644 --- a/crates/xen/xenclient/examples/boot.rs +++ b/crates/xen/xenclient/examples/boot.rs @@ -23,7 +23,7 @@ async fn main() -> Result<()> { mem_mb: 512, kernel: fs::read(&kernel_image_path).await?, initrd: fs::read(&initrd_path).await?, - cmdline: "console=hvc0 debug earlyprintk=xen,keep loglevel=10".to_string(), + cmdline: "earlyprintk=xen earlycon=xen console=hvc0 init=/init".to_string(), swap_console_backend: None, disks: vec![], channels: vec![], diff --git a/crates/xen/xenclient/src/lib.rs b/crates/xen/xenclient/src/lib.rs index 6e1d9e8..0e70d40 100644 --- a/crates/xen/xenclient/src/lib.rs +++ b/crates/xen/xenclient/src/lib.rs @@ -169,12 +169,7 @@ impl XenClient { created: &CreateDomain, config: &DomainConfig, ) -> Result { - trace!( - "XenClient init domid={} domain={:?} config={:?}", - domid, - created, - config - ); + trace!("XenClient init domid={} domain={:?}", domid, created,); let backend_dom_path = self.store.get_domain_path(0).await?; let dom_path = self.store.get_domain_path(domid).await?; let uuid_string = Uuid::from_bytes(created.handle).to_string(); diff --git a/crates/xen/xenstore/src/lib.rs b/crates/xen/xenstore/src/lib.rs index 736e0ee..5749110 100644 --- a/crates/xen/xenstore/src/lib.rs +++ b/crates/xen/xenstore/src/lib.rs @@ -108,7 +108,6 @@ impl XsdClient { } async fn write>(&self, tx: u32, path: P, data: Vec) -> Result { - trace!("write tx={tx} path={} data={:?}", path.as_ref(), data); let mut buffer = Vec::new(); let path = CString::new(path.as_ref())?; buffer.extend_from_slice(path.as_bytes_with_nul()); @@ -120,6 +119,11 @@ impl XsdClient { response.parse_bool() } + async fn write_string>(&self, tx: u32, path: P, data: &str) -> Result { + trace!("write tx={tx} path={} data=\"{}\"", path.as_ref(), data); + self.write(tx, path, data.as_bytes().to_vec()).await + } + async fn mkdir>(&self, tx: u32, path: P) -> Result { trace!("mkdir tx={tx} path={}", path.as_ref()); self.socket @@ -247,7 +251,7 @@ impl XsdInterface for XsdClient { } async fn write_string>(&self, path: P, data: &str) -> Result { - self.write(0, path, data.as_bytes().to_vec()).await + self.write_string(0, path, data).await } async fn mkdir>(&self, path: P) -> Result { @@ -287,9 +291,7 @@ impl XsdInterface for XsdTransaction { } async fn write_string>(&self, path: P, data: &str) -> Result { - self.client - .write(self.tx, path, data.as_bytes().to_vec()) - .await + self.client.write_string(self.tx, path, data).await } async fn mkdir>(&self, path: P) -> Result { diff --git a/kernel/krata-x86_64.config b/kernel/krata-x86_64.config index 2a17441..75dd3f9 100644 --- a/kernel/krata-x86_64.config +++ b/kernel/krata-x86_64.config @@ -356,6 +356,7 @@ CONFIG_X86_X2APIC=y # CONFIG_X86_AMD_PLATFORM_DEVICE is not set CONFIG_IOSF_MBI=m # CONFIG_IOSF_MBI_DEBUG is not set +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y @@ -422,7 +423,12 @@ CONFIG_SCHED_MC_PRIO=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set -# CONFIG_X86_MCE is not set +CONFIG_X86_MCE=y +# CONFIG_X86_MCELOG_LEGACY is not set +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_THRESHOLD=y +# CONFIG_X86_MCE_INJECT is not set # # Performance monitoring @@ -506,7 +512,7 @@ CONFIG_HOTPLUG_CPU=y # CONFIG_LEGACY_VSYSCALL_XONLY is not set CONFIG_LEGACY_VSYSCALL_NONE=y CONFIG_CMDLINE_BOOL=y -CONFIG_CMDLINE="earlyprintk=xen,keep debug loglevel=10" +CONFIG_CMDLINE="earlyprintk=xen earlycon=xen console=hvc0 init=/bin/sh" CONFIG_CMDLINE_OVERRIDE=y CONFIG_MODIFY_LDT_SYSCALL=y # CONFIG_STRICT_SIGALTSTACK_SIZE is not set @@ -1067,6 +1073,8 @@ CONFIG_PCP_BATCH_SCALE_MAX=5 CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_MEMORY_FAILURE is not set CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_TRANSPARENT_HUGEPAGE=y @@ -3128,7 +3136,8 @@ CONFIG_SWIOTLB_XEN=y # CONFIG_XEN_PVCALLS_BACKEND is not set CONFIG_XEN_PRIVCMD=y # CONFIG_XEN_PRIVCMD_EVENTFD is not set -# CONFIG_XEN_ACPI_PROCESSOR is not set +CONFIG_XEN_ACPI_PROCESSOR=y +# CONFIG_XEN_MCE_LOG is not set CONFIG_XEN_HAVE_PVMMU=y CONFIG_XEN_EFI=y CONFIG_XEN_AUTO_XLATE=y @@ -3235,6 +3244,7 @@ CONFIG_IOMMU_SUPPORT=y # # Generic IOMMU Pagetable Support # +CONFIG_IOMMU_IO_PGTABLE=y # end of Generic IOMMU Pagetable Support # CONFIG_IOMMU_DEBUGFS is not set @@ -3242,7 +3252,7 @@ CONFIG_IOMMU_SUPPORT=y CONFIG_IOMMU_DEFAULT_DMA_LAZY=y # CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set CONFIG_IOMMU_DMA=y -# CONFIG_AMD_IOMMU is not set +CONFIG_AMD_IOMMU=y CONFIG_DMAR_TABLE=y CONFIG_INTEL_IOMMU=y # CONFIG_INTEL_IOMMU_SVM is not set