On 01/08/14 at 02:01pm, WANG Chao wrote:
> On 01/08/14 at 01:49pm, Dave Young wrote:
> > On 01/07/14 at 05:00pm, WANG Chao wrote:
> > > This is a backport of the following upstream commit:
> ^^^^^^^^^^^^^^^
> I really mean it
> > >
> > > commit fa35410
> >
> > What's the commit number? Is it from fedora kdump git?
>
> How does that even make sense :P
$ git show fa35410
fatal: ambiguous argument 'fa35410': unknown revision or path not in the working
tree.
Shouldn't it be bd67c1d5e2633f302b4c0ad50cc830ff7da20b2a?
Oops, I made a mistake. 'fa35410' is a commit on my private branch
having the same contents with commit "bd67c1d".
Good catch, Dave! I'm sending v2 for the patchset.
Thanks
WANG Chao
>
> > I think it should be the upstream commit id.
> > Ditto in other several patches.
> >
> > > Author: Baoquan He <bhe(a)redhat.com>
> > > Date: Tue Jul 2 11:09:20 2013 +0900
> > >
> > > Assign non-printable value as short options.
> > >
> > > It's needed for applying commit 414d3ed ("Add --non-mmap option
to
> > > disable mmap() manually").
> > >
> > > Signed-off-by: WANG Chao <chaowang(a)redhat.com>
> > > ---
> > > ...ssign-non-printable-value-as-short-option.patch | 244
+++++++++++++++++++++
> > > kexec-tools.spec | 3 +-
> > > 2 files changed, 246 insertions(+), 1 deletion(-)
> > > create mode 100644
kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
> > >
> > > diff --git
a/kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
b/kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
> > > new file mode 100644
> > > index 0000000..115e3d8
> > > --- /dev/null
> > > +++
b/kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
> > > @@ -0,0 +1,244 @@
> > > +From bd67c1d5e2633f302b4c0ad50cc830ff7da20b2a Mon Sep 17 00:00:00 2001
> > > +From: Baoquan He <bhe(a)redhat.com>
> > > +Date: Tue, 2 Jul 2013 11:09:20 +0900
> > > +Subject: [PATCH 1/2] [PATCH 1/2] Assign non-printable value as short
options.
> > > +
> > > +Characters for short options is limited, and now makedumpfile has
> > > +considerably many options. As times go on, no enough reasonable
> > > +letters can be assigned to each functionality with short options.
> > > +
> > > +E.g non-cyclic vs Y, cyclic-buffer vs Z, eppic vs S.
> > > +
> > > +Now assign non-printable value to these kind of short optins, meanwhile
> > > +define them as indicative MACRO which can make code more readable.
> > > +
> > > +Signed-off-by: Baoquan He <bhe(a)redhat.com>
> > > +---
> > > + makedumpfile.c | 88
+++++++++++++++++++++++++++++-----------------------------
> > > + makedumpfile.h | 35 +++++++++++++++++++++++
> > > + 2 files changed, 79 insertions(+), 44 deletions(-)
> > > +
> > > +diff --git a/makedumpfile-1.5.4/makedumpfile.c
b/makedumpfile-1.5.4/makedumpfile.c
> > > +index b42565c..bb72c66 100644
> > > +--- a/makedumpfile-1.5.4/makedumpfile.c
> > > ++++ b/makedumpfile-1.5.4/makedumpfile.c
> > > +@@ -8555,20 +8555,20 @@ calculate_cyclic_buffer_size(void) {
> > > + }
> > > +
> > > + static struct option longopts[] = {
> > > +- {"split", no_argument, NULL, 's'},
> > > +- {"reassemble", no_argument, NULL, 'r'},
> > > +- {"xen-syms", required_argument, NULL, 'y'},
> > > +- {"xen-vmcoreinfo", required_argument, NULL, 'z'},
> > > +- {"xen_phys_start", required_argument, NULL, 'P'},
> > > +- {"message-level", required_argument, NULL, 'm'},
> > > +- {"vtop", required_argument, NULL, 'V'},
> > > +- {"dump-dmesg", no_argument, NULL, 'M'},
> > > +- {"config", required_argument, NULL, 'C'},
> > > +- {"help", no_argument, NULL, 'h'},
> > > +- {"diskset", required_argument, NULL, 'k'},
> > > +- {"non-cyclic", no_argument, NULL, 'Y'},
> > > +- {"cyclic-buffer", required_argument, NULL, 'Z'},
> > > +- {"eppic", required_argument, NULL, 'S'},
> > > ++ {"split", no_argument, NULL, OPT_SPLIT},
> > > ++ {"reassemble", no_argument, NULL, OPT_REASSEMBLE},
> > > ++ {"xen-syms", required_argument, NULL, OPT_XEN_SYMS},
> > > ++ {"xen-vmcoreinfo", required_argument, NULL,
OPT_XEN_VMCOREINFO},
> > > ++ {"xen_phys_start", required_argument, NULL,
OPT_XEN_PHYS_START},
> > > ++ {"message-level", required_argument, NULL,
OPT_MESSAGE_LEVEL},
> > > ++ {"vtop", required_argument, NULL, OPT_VTOP},
> > > ++ {"dump-dmesg", no_argument, NULL, OPT_DUMP_DMESG},
> > > ++ {"config", required_argument, NULL, OPT_CONFIG},
> > > ++ {"help", no_argument, NULL, OPT_HELP},
> > > ++ {"diskset", required_argument, NULL, OPT_DISKSET},
> > > ++ {"non-cyclic", no_argument, NULL, OPT_NON_CYCLIC},
> > > ++ {"cyclic-buffer", required_argument, NULL,
OPT_CYCLIC_BUFFER},
> > > ++ {"eppic", required_argument, NULL, OPT_EPPIC},
> > > + {0, 0, 0, 0}
> > > + };
> > > +
> > > +@@ -8597,29 +8597,29 @@ main(int argc, char *argv[])
> > > +
> > > + info->block_order = DEFAULT_ORDER;
> > > + message_level = DEFAULT_MSG_LEVEL;
> > > +- while ((opt = getopt_long(argc, argv,
"b:cDd:EFfg:hi:lMpRrsvXx:", longopts,
> > > ++ while ((opt = getopt_long(argc, argv,
"b:cDd:EFfg:hi:lpRvXx:", longopts,
> > > + NULL)) != -1) {
> > > + switch (opt) {
> > > +- case 'b':
> > > ++ case OPT_BLOCK_ORDER:
> > > + info->block_order = atoi(optarg);
> > > + break;
> > > +- case 'C':
> > > ++ case OPT_CONFIG:
> > > + info->name_filterconfig = optarg;
> > > + break;
> > > +- case 'c':
> > > ++ case OPT_COMPRESS_ZLIB:
> > > + info->flag_compress = DUMP_DH_COMPRESSED_ZLIB;
> > > + break;
> > > +- case 'D':
> > > ++ case OPT_DEBUG:
> > > + flag_debug = TRUE;
> > > + break;
> > > +- case 'd':
> > > ++ case OPT_DUMP_LEVEL:
> > > + if (!parse_dump_level(optarg))
> > > + goto out;
> > > + break;
> > > +- case 'E':
> > > ++ case OPT_ELF_DUMPFILE:
> > > + info->flag_elf_dumpfile = 1;
> > > + break;
> > > +- case 'F':
> > > ++ case OPT_FLATTEN:
> > > + info->flag_flatten = 1;
> > > + /*
> > > + * All messages are output to STDERR because STDOUT is
> > > +@@ -8627,75 +8627,75 @@ main(int argc, char *argv[])
> > > + */
> > > + flag_strerr_message = TRUE;
> > > + break;
> > > +- case 'f':
> > > ++ case OPT_FORCE:
> > > + info->flag_force = 1;
> > > + break;
> > > +- case 'g':
> > > ++ case OPT_GENERATE_VMCOREINFO:
> > > + info->flag_generate_vmcoreinfo = 1;
> > > + info->name_vmcoreinfo = optarg;
> > > + break;
> > > +- case 'h':
> > > ++ case OPT_HELP:
> > > + info->flag_show_usage = 1;
> > > + break;
> > > +- case 'i':
> > > ++ case OPT_READ_VMCOREINFO:
> > > + info->flag_read_vmcoreinfo = 1;
> > > + info->name_vmcoreinfo = optarg;
> > > + break;
> > > +- case 'k':
> > > ++ case OPT_DISKSET:
> > > + if (!sadump_add_diskset_info(optarg))
> > > + goto out;
> > > + info->flag_sadump_diskset = 1;
> > > + break;
> > > +- case 'l':
> > > ++ case OPT_COMPRESS_LZO:
> > > + info->flag_compress = DUMP_DH_COMPRESSED_LZO;
> > > + break;
> > > +- case 'm':
> > > ++ case OPT_MESSAGE_LEVEL:
> > > + message_level = atoi(optarg);
> > > + break;
> > > +- case 'M':
> > > ++ case OPT_DUMP_DMESG:
> > > + info->flag_dmesg = 1;
> > > + break;
> > > +- case 'p':
> > > ++ case OPT_COMPRESS_SNAPPY:
> > > + info->flag_compress = DUMP_DH_COMPRESSED_SNAPPY;
> > > + break;
> > > +- case 'P':
> > > ++ case OPT_XEN_PHYS_START:
> > > + info->xen_phys_start = strtoul(optarg, NULL, 0);
> > > + break;
> > > +- case 'R':
> > > ++ case OPT_REARRANGE:
> > > + info->flag_rearrange = 1;
> > > + break;
> > > +- case 's':
> > > ++ case OPT_SPLIT:
> > > + info->flag_split = 1;
> > > + break;
> > > +- case 'S':
> > > ++ case OPT_EPPIC:
> > > + info->name_eppic_config = optarg;
> > > + break;
> > > +- case 'r':
> > > ++ case OPT_REASSEMBLE:
> > > + info->flag_reassemble = 1;
> > > + break;
> > > +- case 'V':
> > > ++ case OPT_VTOP:
> > > + info->vaddr_for_vtop = strtoul(optarg, NULL, 0);
> > > + break;
> > > +- case 'v':
> > > ++ case OPT_VERSION:
> > > + info->flag_show_version = 1;
> > > + break;
> > > +- case 'X':
> > > ++ case OPT_EXCLUDE_XEN_DOM:
> > > + info->flag_exclude_xen_dom = 1;
> > > + break;
> > > +- case 'x':
> > > ++ case OPT_VMLINUX:
> > > + info->name_vmlinux = optarg;
> > > + break;
> > > +- case 'y':
> > > ++ case OPT_XEN_SYMS:
> > > + info->name_xen_syms = optarg;
> > > + break;
> > > +- case 'Y':
> > > ++ case OPT_NON_CYCLIC:
> > > + info->flag_cyclic = FALSE;
> > > + break;
> > > +- case 'z':
> > > ++ case OPT_XEN_VMCOREINFO:
> > > + info->flag_read_vmcoreinfo = 1;
> > > + info->name_vmcoreinfo = optarg;
> > > + break;
> > > +- case 'Z':
> > > ++ case OPT_CYCLIC_BUFFER:
> > > + info->bufsize_cyclic = atoi(optarg);
> > > + break;
> > > + case '?':
> > > +diff --git a/makedumpfile-1.5.4/makedumpfile.h
b/makedumpfile-1.5.4/makedumpfile.h
> > > +index a5826e0..79d4702 100644
> > > +--- a/makedumpfile-1.5.4/makedumpfile.h
> > > ++++ b/makedumpfile-1.5.4/makedumpfile.h
> > > +@@ -1671,6 +1671,41 @@ struct elf_prstatus {
> > > + #endif
> > > +
> > > + /*
> > > ++ * Below are options which getopt_long can recognize. From OPT_START
options are
> > > ++ * non-printable, just used for implementation.
> > > ++ */
> > > ++#define OPT_BLOCK_ORDER 'b'
> > > ++#define OPT_COMPRESS_ZLIB 'c'
> > > ++#define OPT_DEBUG 'D'
> > > ++#define OPT_DUMP_LEVEL 'd'
> > > ++#define OPT_ELF_DUMPFILE 'E'
> > > ++#define OPT_FLATTEN 'F'
> > > ++#define OPT_FORCE 'f'
> > > ++#define OPT_GENERATE_VMCOREINFO 'g'
> > > ++#define OPT_HELP 'h'
> > > ++#define OPT_READ_VMCOREINFO 'i'
> > > ++#define OPT_COMPRESS_LZO 'l'
> > > ++#define OPT_COMPRESS_SNAPPY 'p'
> > > ++#define OPT_REARRANGE 'R'
> > > ++#define OPT_VERSION 'v'
> > > ++#define OPT_EXCLUDE_XEN_DOM 'X'
> > > ++#define OPT_VMLINUX 'x'
> > > ++#define OPT_START 256
> > > ++#define OPT_SPLIT OPT_START+0
> > > ++#define OPT_REASSEMBLE OPT_START+1
> > > ++#define OPT_XEN_SYMS OPT_START+2
> > > ++#define OPT_XEN_VMCOREINFO OPT_START+3
> > > ++#define OPT_XEN_PHYS_START OPT_START+4
> > > ++#define OPT_MESSAGE_LEVEL OPT_START+5
> > > ++#define OPT_VTOP OPT_START+6
> > > ++#define OPT_DUMP_DMESG OPT_START+7
> > > ++#define OPT_CONFIG OPT_START+8
> > > ++#define OPT_DISKSET OPT_START+9
> > > ++#define OPT_NON_CYCLIC OPT_START+10
> > > ++#define OPT_CYCLIC_BUFFER OPT_START+11
> > > ++#define OPT_EPPIC OPT_START+12
> > > ++
> > > ++/*
> > > + * Function Prototype.
> > > + */
> > > + unsigned long long get_num_dumpable_cyclic(void);
> > > +--
> > > +1.8.4.2
> > > +
> > > diff --git a/kexec-tools.spec b/kexec-tools.spec
> > > index 485fe88..78a8277 100644
> > > --- a/kexec-tools.spec
> > > +++ b/kexec-tools.spec
> > > @@ -90,6 +90,7 @@ Patch608:
kexec-tools-2.0.4-makedumpfile-Use-divideup-to-calculate-maximum-requi
> > > Patch609:
kexec-tools-2.0.4-makedumpfile-cache-Allocate-buffers-at-initialization-t.patch
> > > Patch610:
kexec-tools-2.0.4-makedumpfile-cache-Reuse-entry-in-pending-list.patch
> > > Patch612:
kexec-tools-2.0.4-makedumpfile-Understand-v3.11-rc4-dmesg.patch
> > > +Patch613:
kexec-tools-2.0.4-makedumpfile-Assign-non-printable-value-as-short-option.patch
> > >
> > > %description
> > > kexec-tools provides /sbin/kexec binary that facilitates a new
> > > @@ -133,7 +134,7 @@ tar -z -x -v -f %{SOURCE19}
> > > %patch003 -p1
> > > %patch612 -p1
> > > %patch302 -p1
> > > -
> > > +%patch613 -p1
> > >
> > > tar -z -x -v -f %{SOURCE13}
> > >
> > > --
> > > 1.8.4.2
> > >
> > > _______________________________________________
> > > kexec mailing list
> > > kexec(a)lists.fedoraproject.org
> > >
https://lists.fedoraproject.org/mailman/listinfo/kexec