From: Janosch Frank <frankja@linux.ibm.com>
To: "Marc-André Lureau" <marcandre.lureau@redhat.com>
Cc: qemu-devel <qemu-devel@nongnu.org>,
"Bonzini, Paolo" <pbonzini@redhat.com>,
mhartmay@linux.ibm.com,
Christian Borntraeger <borntraeger@linux.ibm.com>,
imbrenda@linux.ibm.com, Halil Pasic <pasic@linux.ibm.com>,
Cornelia Huck <cohuck@redhat.com>, Thomas Huth <thuth@redhat.com>,
"open list:S390 SCLP-backed..." <qemu-s390x@nongnu.org>,
seiden@linux.ibm.com, scgl@linux.ibm.com
Subject: Re: [PATCH v4 12/17] dump/dump: Add arch section support
Date: Thu, 28 Jul 2022 09:34:34 +0200 [thread overview]
Message-ID: <67258c43-3321-515f-671c-fe34cb23a232@linux.ibm.com> (raw)
In-Reply-To: <CAMxuvazpXtOjWH_OoBDAj0VB4gjGAcy4ozv_oouRYtcZ_+MZvQ@mail.gmail.com>
On 7/26/22 13:30, Marc-André Lureau wrote:
> Hi
>
> On Tue, Jul 26, 2022 at 1:23 PM Janosch Frank <frankja@linux.ibm.com> wrote:
>>
>> Add hooks which architectures can use to add arbitrary data to custom
>> sections.
>>
>> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
>> ---
>> dump/dump.c | 5 +++++
>> include/sysemu/dump-arch.h | 27 +++++++++++++++++++++++++++
>> 2 files changed, 32 insertions(+)
>>
>> diff --git a/dump/dump.c b/dump/dump.c
>> index 298a1e923f..1ec4c3b6c3 100644
>> --- a/dump/dump.c
>> +++ b/dump/dump.c
>> @@ -398,6 +398,7 @@ static void prepare_elf_section_hdrs(DumpState *s)
>> /*
>> * Section ordering:
>> * - HDR zero (if needed)
>> + * - Arch section hdrs
>> * - String table hdr
>> */
>> sizeof_shdr = dump_is_64bit(s) ? sizeof(Elf64_Shdr) : sizeof(Elf32_Shdr);
>> @@ -415,6 +416,8 @@ static void prepare_elf_section_hdrs(DumpState *s)
>> return;
>> }
>>
>> + buff_hdr += dump_arch_sections_write_hdr(&s->dump_info, s, buff_hdr);
>> +
>> /*
>> * String table needs to be last section since strings are added
>> * via arch_sections_write_hdr().
>> @@ -758,6 +761,7 @@ static void dump_end(DumpState *s, Error **errp)
>> return;
>> }
>> s->elf_section_data = g_malloc0(s->elf_section_data_size);
>> + dump_arch_sections_write(&s->dump_info, s, s->elf_section_data);
>>
>> /* write sections to vmcore */
>> write_elf_sections(s, errp);
>> @@ -1929,6 +1933,7 @@ static void dump_init(DumpState *s, int fd, bool has_format,
>> * If phdr_num overflowed we have at least one section header
>> * More sections/hdrs can be added by the architectures
>> */
>> + dump_arch_sections_add(&s->dump_info, (void *)s);
>> if (s->shdr_num > 1) {
>> /* Reserve the string table */
>> s->shdr_num += 1;
>> diff --git a/include/sysemu/dump-arch.h b/include/sysemu/dump-arch.h
>> index e25b02e990..de77908424 100644
>> --- a/include/sysemu/dump-arch.h
>> +++ b/include/sysemu/dump-arch.h
>> @@ -21,6 +21,9 @@ typedef struct ArchDumpInfo {
>> uint32_t page_size; /* The target's page size. If it's variable and
>> * unknown, then this should be the maximum. */
>> uint64_t phys_base; /* The target's physmem base. */
>> + void (*arch_sections_add_fn)(void *opaque);
>> + uint64_t (*arch_sections_write_hdr_fn)(void *opaque, uint8_t *buff);
>> + void (*arch_sections_write_fn)(void *opaque, uint8_t *buff);
>
> Why not pass DumpState? If there is an issue with header declaration
> order, you can always move the declaration in include/qemu/typedefs.h,
> I guess.
The CPU note function passes the opaque pointer so I did as the same.
If you want I can have a look if it makes sense to move over to DumpState.
>
>> } ArchDumpInfo;
>>
>> struct GuestPhysBlockList; /* memory_mapping.h */
>> @@ -28,4 +31,28 @@ int cpu_get_dump_info(ArchDumpInfo *info,
>> const struct GuestPhysBlockList *guest_phys_blocks);
>> ssize_t cpu_get_note_size(int class, int machine, int nr_cpus);
>>
>> +static inline void dump_arch_sections_add(ArchDumpInfo *info, void *opaque)
>> +{
>> + if (info->arch_sections_add_fn) {
>> + info->arch_sections_add_fn(opaque);
>> + }
>> +}
>> +
>> +static inline uint64_t dump_arch_sections_write_hdr(ArchDumpInfo *info,
>> + void *opaque, uint8_t *buff)
>> +{
>> + if (info->arch_sections_write_hdr_fn) {
>> + return info->arch_sections_write_hdr_fn(opaque, buff);
>> + }
>> + return 0;
>> +}
>> +
>> +static inline void dump_arch_sections_write(ArchDumpInfo *info, void *opaque,
>> + uint8_t *buff)
>> +{
>> + if (info->arch_sections_write_fn) {
>> + info->arch_sections_write_fn(opaque, buff);
>> + }
>> +}
>
> We probably don't need those static inline helpers in the header.
>
next prev parent reply other threads:[~2022-07-28 7:46 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-26 9:22 [PATCH v4 00/17] dump: Add arch section and s390x PV dump Janosch Frank
2022-07-26 9:22 ` [PATCH v4 01/17] dump: Rename write_elf_loads to write_elf_phdr_loads Janosch Frank
2022-07-27 18:25 ` Janis Schoetterl-Glausch
2022-07-28 17:20 ` Steffen Eiden
2022-07-26 9:22 ` [PATCH v4 02/17] dump: Introduce GuestPhysBlock offset and length filter functions Janosch Frank
2022-07-26 11:35 ` Marc-André Lureau
2022-07-26 13:01 ` Janosch Frank
2022-07-26 13:11 ` Marc-André Lureau
2022-07-27 10:49 ` Janis Schoetterl-Glausch
2022-07-26 9:22 ` [PATCH v4 03/17] dump: Convert GuestPhysBlock iterators and use the " Janosch Frank
2022-07-27 18:34 ` Janis Schoetterl-Glausch
2022-07-26 9:22 ` [PATCH v4 04/17] dump: Rework get_start_block Janosch Frank
2022-07-26 11:37 ` Marc-André Lureau
2022-07-27 18:42 ` Janis Schoetterl-Glausch
2022-07-28 17:52 ` Steffen Eiden
2022-07-26 9:22 ` [PATCH v4 05/17] dump: Cleanup and annotate guest memory related DumpState struct members Janosch Frank
2022-07-26 11:31 ` Marc-André Lureau
2022-07-29 18:33 ` Janis Schoetterl-Glausch
2022-07-26 9:22 ` [PATCH v4 06/17] dump: Rework dump_calculate_size function Janosch Frank
2022-07-26 11:36 ` Marc-André Lureau
2022-07-26 9:22 ` [PATCH v4 07/17] dump: Allocate header Janosch Frank
2022-07-29 18:31 ` Janis Schoetterl-Glausch
2022-07-26 9:22 ` [PATCH v4 08/17] dump: Split write of section headers and data and add a prepare step Janosch Frank
2022-07-29 15:31 ` Janis Schoetterl-Glausch
2022-07-29 17:16 ` Janis Schoetterl-Glausch
2022-08-01 7:53 ` Janosch Frank
2022-07-26 9:22 ` [PATCH v4 09/17] dump: Reorder struct DumpState Janosch Frank
2022-07-26 11:04 ` Marc-André Lureau
2022-07-29 17:21 ` Janis Schoetterl-Glausch
2022-08-01 7:55 ` Janosch Frank
2022-07-26 9:22 ` [PATCH v4 10/17] dump: Swap segment and section header locations Janosch Frank
2022-07-26 11:06 ` Marc-André Lureau
2022-07-29 18:56 ` Janis Schoetterl-Glausch
2022-07-26 9:22 ` [PATCH v4 11/17] dump/dump: Add section string table support Janosch Frank
2022-07-26 11:25 ` Marc-André Lureau
2022-07-26 12:53 ` Janosch Frank
2022-07-26 13:12 ` Marc-André Lureau
2022-07-26 14:26 ` Janosch Frank
2022-07-28 13:41 ` Marc-André Lureau
2022-08-01 9:26 ` Janosch Frank
2022-07-29 19:35 ` Janis Schoetterl-Glausch
2022-08-01 14:25 ` Janosch Frank
2022-07-26 9:22 ` [PATCH v4 12/17] dump/dump: Add arch section support Janosch Frank
2022-07-26 11:30 ` Marc-André Lureau
2022-07-28 7:34 ` Janosch Frank [this message]
2022-07-28 9:49 ` Marc-André Lureau
2022-07-26 9:22 ` [PATCH v4 13/17] linux header sync Janosch Frank
2022-07-26 11:03 ` Marc-André Lureau
2022-07-26 9:22 ` [PATCH v4 14/17] s390x: Add protected dump cap Janosch Frank
2022-07-26 9:22 ` [PATCH v4 15/17] s390x: Introduce PV query interface Janosch Frank
2022-07-26 9:22 ` [PATCH v4 16/17] s390x: Add KVM PV dump interface Janosch Frank
2022-07-26 9:22 ` [PATCH v4 17/17] s390x: pv: Add dump support Janosch Frank
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=67258c43-3321-515f-671c-fe34cb23a232@linux.ibm.com \
--to=frankja@linux.ibm.com \
--cc=borntraeger@linux.ibm.com \
--cc=cohuck@redhat.com \
--cc=imbrenda@linux.ibm.com \
--cc=marcandre.lureau@redhat.com \
--cc=mhartmay@linux.ibm.com \
--cc=pasic@linux.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=scgl@linux.ibm.com \
--cc=seiden@linux.ibm.com \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.