Message ID | 20231124033642.520686-3-bhe@redhat.com (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | kexec_file: print out debugging message if required | expand |
On Fri, 2023-11-24 at 11:36 +0800, Baoquan He wrote: > Replace pr_debug() with the newly added kexec_dprintk() in kexec_file > loading related codes. trivia for pr_debug -> kexec_dprintk conversions for the entire patch set: > diff --git a/kernel/crash_core.c b/kernel/crash_core.c [] > @@ -551,9 +551,12 @@ int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map, > phdr->p_filesz = phdr->p_memsz = mend - mstart + 1; > phdr->p_align = 0; > ehdr->e_phnum++; > - pr_debug("Crash PT_LOAD ELF header. phdr=%p vaddr=0x%llx, paddr=0x%llx, sz=0x%llx e_phnum=%d p_offset=0x%llx\n", > +#ifdef CONFIG_KEXEC_FILE > + kexec_dprintk("Crash PT_LOAD ELF header. phdr=%p vaddr=0x%llx, paddr=0x%llx, " > + "sz=0x%llx e_phnum=%d p_offset=0x%llx\n", > phdr, phdr->p_vaddr, phdr->p_paddr, phdr->p_filesz, > ehdr->e_phnum, phdr->p_offset); It's good form to rewrap continuation lines to the open parenthesis > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c [] > @@ -389,11 +391,12 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, > if (ret) > goto out; > > + kexec_dprintk("nr_segments = %lu\n", image->nr_segments); > for (i = 0; i < image->nr_segments; i++) { > struct kexec_segment *ksegment; > > ksegment = &image->segment[i]; > - pr_debug("Loading segment %d: buf=0x%p bufsz=0x%zx mem=0x%lx memsz=0x%zx\n", > + kexec_dprintk("segment[%d]: buf=0x%p bufsz=0x%zx mem=0x%lx memsz=0x%zx\n", > i, ksegment->buf, ksegment->bufsz, ksegment->mem, > ksegment->memsz); here too etc...
On 11/23/23 at 11:16pm, Joe Perches wrote: > On Fri, 2023-11-24 at 11:36 +0800, Baoquan He wrote: > > Replace pr_debug() with the newly added kexec_dprintk() in kexec_file > > loading related codes. > > trivia for pr_debug -> kexec_dprintk conversions for > the entire patch set: OK, will check all patchset and adjust the indendation, thanks. > > > diff --git a/kernel/crash_core.c b/kernel/crash_core.c > [] > > @@ -551,9 +551,12 @@ int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map, > > phdr->p_filesz = phdr->p_memsz = mend - mstart + 1; > > phdr->p_align = 0; > > ehdr->e_phnum++; > > - pr_debug("Crash PT_LOAD ELF header. phdr=%p vaddr=0x%llx, paddr=0x%llx, sz=0x%llx e_phnum=%d p_offset=0x%llx\n", > > +#ifdef CONFIG_KEXEC_FILE > > + kexec_dprintk("Crash PT_LOAD ELF header. phdr=%p vaddr=0x%llx, paddr=0x%llx, " > > + "sz=0x%llx e_phnum=%d p_offset=0x%llx\n", > > phdr, phdr->p_vaddr, phdr->p_paddr, phdr->p_filesz, > > ehdr->e_phnum, phdr->p_offset); > > It's good form to rewrap continuation lines to the open parenthesis > > > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c > [] > > @@ -389,11 +391,12 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, > > if (ret) > > goto out; > > > > + kexec_dprintk("nr_segments = %lu\n", image->nr_segments); > > for (i = 0; i < image->nr_segments; i++) { > > struct kexec_segment *ksegment; > > > > ksegment = &image->segment[i]; > > - pr_debug("Loading segment %d: buf=0x%p bufsz=0x%zx mem=0x%lx memsz=0x%zx\n", > > + kexec_dprintk("segment[%d]: buf=0x%p bufsz=0x%zx mem=0x%lx memsz=0x%zx\n", > > i, ksegment->buf, ksegment->bufsz, ksegment->mem, > > ksegment->memsz); > > here too etc... >
diff --git a/kernel/crash_core.c b/kernel/crash_core.c index efe87d501c8c..1485fd7bb67f 100644 --- a/kernel/crash_core.c +++ b/kernel/crash_core.c @@ -551,9 +551,12 @@ int crash_prepare_elf64_headers(struct crash_mem *mem, int need_kernel_map, phdr->p_filesz = phdr->p_memsz = mend - mstart + 1; phdr->p_align = 0; ehdr->e_phnum++; - pr_debug("Crash PT_LOAD ELF header. phdr=%p vaddr=0x%llx, paddr=0x%llx, sz=0x%llx e_phnum=%d p_offset=0x%llx\n", +#ifdef CONFIG_KEXEC_FILE + kexec_dprintk("Crash PT_LOAD ELF header. phdr=%p vaddr=0x%llx, paddr=0x%llx, " + "sz=0x%llx e_phnum=%d p_offset=0x%llx\n", phdr, phdr->p_vaddr, phdr->p_paddr, phdr->p_filesz, ehdr->e_phnum, phdr->p_offset); +#endif phdr++; } diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c index 4c35500ae40a..7ae1b0901aa4 100644 --- a/kernel/kexec_file.c +++ b/kernel/kexec_file.c @@ -206,6 +206,8 @@ kimage_file_prepare_segments(struct kimage *image, int kernel_fd, int initrd_fd, if (ret < 0) return ret; image->kernel_buf_len = ret; + kexec_dprintk("kernel: %p kernel_size: %#lx\n", + image->kernel_buf, image->kernel_buf_len); /* Call arch image probe handlers */ ret = arch_kexec_kernel_image_probe(image, image->kernel_buf, @@ -389,11 +391,12 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, if (ret) goto out; + kexec_dprintk("nr_segments = %lu\n", image->nr_segments); for (i = 0; i < image->nr_segments; i++) { struct kexec_segment *ksegment; ksegment = &image->segment[i]; - pr_debug("Loading segment %d: buf=0x%p bufsz=0x%zx mem=0x%lx memsz=0x%zx\n", + kexec_dprintk("segment[%d]: buf=0x%p bufsz=0x%zx mem=0x%lx memsz=0x%zx\n", i, ksegment->buf, ksegment->bufsz, ksegment->mem, ksegment->memsz); @@ -408,6 +411,8 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd, int, initrd_fd, if (ret) goto out; + kexec_dprintk("kexec_file_load: type:%u, start:0x%lx head:0x%lx flags:0x%lx\n", + image->type, image->start, image->head, flags); /* * Free up any temporary buffers allocated which are not needed * after image has been loaded diff --git a/security/integrity/ima/ima_kexec.c b/security/integrity/ima/ima_kexec.c index ad133fe120db..e692624bcab3 100644 --- a/security/integrity/ima/ima_kexec.c +++ b/security/integrity/ima/ima_kexec.c @@ -129,7 +129,7 @@ void ima_add_kexec_buffer(struct kimage *image) image->ima_buffer_size = kexec_segment_size; image->ima_buffer = kexec_buffer; - pr_debug("kexec measurement buffer for the loaded kernel at 0x%lx.\n", + kexec_dprintk("kexec measurement buffer for the loaded kernel at 0x%lx.\n", kbuf.mem); } #endif /* IMA_KEXEC */
Replace pr_debug() with the newly added kexec_dprintk() in kexec_file loading related codes. And also print out type/start/head of kimage and flags to help debug. Signed-off-by: Baoquan He <bhe@redhat.com> --- kernel/crash_core.c | 5 ++++- kernel/kexec_file.c | 7 ++++++- security/integrity/ima/ima_kexec.c | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-)