import util-linux-2.32.1-27.el8

This commit is contained in:
CentOS Sources 2021-03-30 14:51:25 -04:00 committed by Stepan Oksanichenko
parent e699044b0a
commit ed6b2fe83d
15 changed files with 1254 additions and 1 deletions

View File

@ -0,0 +1,46 @@
From f575b6e0857087f46d54f494d9a435af715ea19d Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 1 Oct 2020 10:40:27 +0200
Subject: [PATCH 43/55] chrt: use SCHED_FLAG_RESET_ON_FORK for sched_setattr()
Reviewed by many people, used for years (but probably nobody uses
SCHED_DEADLINE with reset-on-fork), but we all missed:
- sched_setscheduler() uses SCHED_RESET_ON_FORK (0x40000000)
- sched_setattr() uses SCHED_FLAG_RESET_ON_FORK (0x01)
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1884194
Signed-off-by: Karel Zak <kzak@redhat.com>
---
schedutils/chrt.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/schedutils/chrt.c b/schedutils/chrt.c
index b08c78ed8..15556bbad 100644
--- a/schedutils/chrt.c
+++ b/schedutils/chrt.c
@@ -123,7 +123,7 @@ struct chrt_ctl {
uint64_t period;
unsigned int all_tasks : 1, /* all threads of the PID */
- reset_on_fork : 1, /* SCHED_RESET_ON_FORK */
+ reset_on_fork : 1, /* SCHED_RESET_ON_FORK or SCHED_FLAG_RESET_ON_FORK */
altered : 1, /* sched_set**() used */
verbose : 1; /* verbose output */
};
@@ -376,9 +376,10 @@ static int set_sched_one(struct chrt_ctl *ctl, pid_t pid)
sa.sched_period = ctl->period;
sa.sched_deadline = ctl->deadline;
-# ifdef SCHED_RESET_ON_FORK
+# ifdef SCHED_FLAG_RESET_ON_FORK
+ /* Don't use SCHED_RESET_ON_FORK for sched_setattr()! */
if (ctl->reset_on_fork)
- sa.sched_flags |= SCHED_RESET_ON_FORK;
+ sa.sched_flags |= SCHED_FLAG_RESET_ON_FORK;
# endif
errno = 0;
return sched_setattr(pid, &sa, 0);
--
2.29.2

View File

@ -0,0 +1,146 @@
From c4caa5b973f9cdb4c43edea3c32cda62cdf15b3b Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 1 Oct 2020 11:20:01 +0200
Subject: [PATCH 44/55] chrt: don't restrict --reset-on-fork, add more info to
man page
The flag works (= kernel accepts it) for all scheduling policies
and sched_getattr() returns the flag for all policies.
There is no reason for userspace to be more smart than kernel or hide
the flag when it prints sched_getattr()/sched_getscheduler() results.
# chrt -v --reset-on-fork --batch 0 /bin/true
pid 1315019's new scheduling policy: SCHED_BATCH|SCHED_RESET_ON_FORK
# chrt -v --reset-on-fork --fifo 1 /bin/true
pid 1315055's new scheduling policy: SCHED_FIFO|SCHED_RESET_ON_FORK
# chrt -v --reset-on-fork --deadline --sched-period 10000 0 /bin/true
pid 1315182's new scheduling policy: SCHED_DEADLINE|SCHED_RESET_ON_FORK
# chrt -v --reset-on-fork --idle 0 /bin/true
pid 1315247's new scheduling policy: SCHED_IDLE|SCHED_RESET_ON_FORK
# chrt -v --reset-on-fork --rr 1 /bin/true
pid 1315275's new scheduling policy: SCHED_RR|SCHED_RESET_ON_FORK
# chrt -v --reset-on-fork --other 0 /bin/true
pid 1315311's new scheduling policy: SCHED_OTHER|SCHED_RESET_ON_FORK
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1884194
Signed-off-by: Karel Zak <kzak@redhat.com>
---
schedutils/chrt.1 | 32 ++++++++++++++++++++++++++++----
schedutils/chrt.c | 18 +++++-------------
2 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/schedutils/chrt.1 b/schedutils/chrt.1
index 4b8b1e9da..a9adfb316 100644
--- a/schedutils/chrt.1
+++ b/schedutils/chrt.1
@@ -92,13 +92,37 @@ Specifies period parameter for SCHED_DEADLINE policy (Linux-specific).
Specifies deadline parameter for SCHED_DEADLINE policy (Linux-specific).
.TP
\fB\-R\fR, \fB\-\-reset-on-fork\fR
-Add
+Use
.B SCHED_RESET_ON_FORK
-flag to the
+or
+.B SCHED_FLAG_RESET_ON_FORK
+flag. Linux-specific, supported since 2.6.31.
+
+Each thread has a reset-on-fork scheduling flag. When this flag is set, children created by
+.BR fork (2)
+do not inherit privileged scheduling policies. After the reset-on-fork flag has been enabled,
+it can be reset only if the thread has the
+.BR CAP_SYS_NICE
+capability. This flag is disabled in child processes created by
+.BR fork (2).
+
+More precisely, if the reset-on-fork flag is set,
+the following rules apply for subsequently created children:
+.RS
+.IP * 3
+If the calling thread has a scheduling policy of
.B SCHED_FIFO
or
-.B SCHED_RR
-scheduling policy (Linux-specific, supported since 2.6.31).
+.BR SCHED_RR ,
+the policy is reset to
+.BR SCHED_OTHER
+in child processes.
+.IP *
+If the calling process has a negative nice value,
+the nice value is reset to zero in child processes.
+.RE
+
+
.SH OPTIONS
.TP
diff --git a/schedutils/chrt.c b/schedutils/chrt.c
index 15556bbad..2a6f1e151 100644
--- a/schedutils/chrt.c
+++ b/schedutils/chrt.c
@@ -152,7 +152,7 @@ static void __attribute__((__noreturn__)) usage(void)
fputs(USAGE_SEPARATOR, out);
fputs(_("Scheduling options:\n"), out);
- fputs(_(" -R, --reset-on-fork set SCHED_RESET_ON_FORK for FIFO or RR\n"), out);
+ fputs(_(" -R, --reset-on-fork set reset-on-fork flag\n"), out);
fputs(_(" -T, --sched-runtime <ns> runtime parameter for DEADLINE\n"), out);
fputs(_(" -P, --sched-period <ns> period parameter for DEADLINE\n"), out);
fputs(_(" -D, --sched-deadline <ns> deadline parameter for DEADLINE\n"), out);
@@ -173,22 +173,19 @@ static void __attribute__((__noreturn__)) usage(void)
static const char *get_policy_name(int policy)
{
+#ifdef SCHED_RESET_ON_FORK
+ policy &= ~SCHED_RESET_ON_FORK;
+#endif
switch (policy) {
case SCHED_OTHER:
return "SCHED_OTHER";
case SCHED_FIFO:
-#ifdef SCHED_RESET_ON_FORK
- case SCHED_FIFO | SCHED_RESET_ON_FORK:
-#endif
return "SCHED_FIFO";
#ifdef SCHED_IDLE
case SCHED_IDLE:
return "SCHED_IDLE";
#endif
case SCHED_RR:
-#ifdef SCHED_RESET_ON_FORK
- case SCHED_RR | SCHED_RESET_ON_FORK:
-#endif
return "SCHED_RR";
#ifdef SCHED_BATCH
case SCHED_BATCH:
@@ -257,7 +254,7 @@ fallback:
else
prio = sp.sched_priority;
# ifdef SCHED_RESET_ON_FORK
- if (policy == (SCHED_FIFO|SCHED_RESET_ON_FORK) || policy == (SCHED_BATCH|SCHED_RESET_ON_FORK))
+ if (policy & SCHED_RESET_ON_FORK)
reset_on_fork = 1;
# endif
}
@@ -515,11 +512,6 @@ int main(int argc, char **argv)
errno = 0;
ctl->priority = strtos32_or_err(argv[optind], _("invalid priority argument"));
-#ifdef SCHED_RESET_ON_FORK
- if (ctl->reset_on_fork && ctl->policy != SCHED_FIFO && ctl->policy != SCHED_RR)
- errx(EXIT_FAILURE, _("--reset-on-fork option is supported for "
- "SCHED_FIFO and SCHED_RR policies only"));
-#endif
#ifdef SCHED_DEADLINE
if ((ctl->runtime || ctl->deadline || ctl->period) && ctl->policy != SCHED_DEADLINE)
errx(EXIT_FAILURE, _("--sched-{runtime,deadline,period} options "
--
2.29.2

View File

@ -0,0 +1,41 @@
From 8704fa57c3b93152df6c10fd6a35ebdd59e1a5b7 Mon Sep 17 00:00:00 2001
From: Peter Wu <peter@lekensteyn.nl>
Date: Fri, 1 Feb 2019 15:40:53 +0100
Subject: [PATCH 45/55] mount.8: clarify (no)suid behavior on file capabilities
Clarify that the nosuid option also affects file capabilities and that
it only limits execution of programs. (setgid on directories still
inherit the group regardless of the nosuid option.) The new text is
taken from the mount(2) manual page from the man-pages project.
Addresses: https://github.com/karelzak/util-linux/issues/482
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1855759
Signed-off-by: Peter Wu <peter@lekensteyn.nl>
---
sys-utils/mount.8 | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sys-utils/mount.8 b/sys-utils/mount.8
index 1cc792979..a4d7de2c0 100644
--- a/sys-utils/mount.8
+++ b/sys-utils/mount.8
@@ -1107,12 +1107,12 @@ or
Do not use the lazytime feature.
.TP
.B suid
-Allow set-user-ID or set-group-ID bits to take
-effect.
+Honor set-user-ID and set-group-ID bits or file capabilities when
+executing programs from this filesystem.
.TP
.B nosuid
-Do not allow set-user-ID or set-group-ID bits to take
-effect.
+Do not honor set-user-ID and set-group-ID bits or file capabilities when
+executing programs from this filesystem.
.TP
.B silent
Turn on the silent flag.
--
2.29.2

View File

@ -0,0 +1,59 @@
From afe6545483a881ccde41dcaa6718c71c74b38d7b Mon Sep 17 00:00:00 2001
From: Sven Wiltink <swiltink@transip.nl>
Date: Fri, 1 May 2020 16:35:40 +0200
Subject: [PATCH 46/55] lsblk: Fall back to ID_SERIAL
In some cases ID_SERIAL_SHORT isn't provided by libudev, but ID_SERIAL
is. An example of this are virtio devices. See the output of udevadm
info:
P: /devices/pci0000:00/0000:00:06.0/virtio2/block/vdb
N: vdb
S: disk/by-id/virtio-08491434ee711d3420e9
S: disk/by-path/pci-0000:00:06.0
S: disk/by-path/virtio-pci-0000:00:06.0
E: DEVLINKS=/dev/disk/by-id/virtio-08491434ee711d3420e9 /dev/disk/by-path/pci-0000:00:06.0 /dev/disk/by-path/virtio-pci-0000:00:06.0
E: DEVNAME=/dev/vdb
E: DEVPATH=/devices/pci0000:00/0000:00:06.0/virtio2/block/vdb
E: DEVTYPE=disk
E: ID_PATH=pci-0000:00:06.0
E: ID_PATH_TAG=pci-0000_00_06_0
E: ID_SERIAL=08491434ee711d3420e9
E: MAJOR=252
E: MINOR=16
E: SUBSYSTEM=block
E: TAGS=:systemd:
E: USEC_INITIALIZED=1403804
[RHEL-8 backport: add ID_SERIAL and also ID_SCSI_SERIAL to be compatible with upstream]
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1861670
Upstream: http://github.com/karelzak/util-linux/commit/e81d0f80068086147434fa947a4f723c00318772
Upstream: http://github.com/karelzak/util-linux/commit/de6c2a4aec140e6086e278688d97f4655ced1a9a
Signed-off-by: Karel Zak <kzak@redhat.com>
---
misc-utils/lsblk.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/misc-utils/lsblk.c b/misc-utils/lsblk.c
index ae97f9f05..d0369d3e7 100644
--- a/misc-utils/lsblk.c
+++ b/misc-utils/lsblk.c
@@ -567,8 +567,14 @@ static int get_udev_properties(struct blkdev_cxt *cxt)
if (data)
cxt->wwn = xstrdup(data);
- if ((data = udev_device_get_property_value(dev, "ID_SERIAL_SHORT")))
+ data = udev_device_get_property_value(dev, "ID_SCSI_SERIAL");
+ if (!data)
+ data = udev_device_get_property_value(dev, "ID_SERIAL_SHORT");
+ if (!data)
+ data = udev_device_get_property_value(dev, "ID_SERIAL");
+ if (data)
cxt->serial = xstrdup(data);
+
udev_device_unref(dev);
cxt->probed = 1;
DBG(DEV, ul_debugobj(cxt, "%s: found udev properties", cxt->name));
--
2.29.2

View File

@ -0,0 +1,32 @@
From 4ac8e70822313b0c6b35ebf633c6e8fbca558998 Mon Sep 17 00:00:00 2001
From: Thomas Abraham <tabraham@suse.com>
Date: Thu, 24 Sep 2020 14:52:33 -0400
Subject: [PATCH 47/55] lscpu: avoid segfault on PowerPC systems with valid
hardware configurations
ntypes greater than 1 is valid in some hardware configurations, and an assert()
on the value isn't necessary or very future proof
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1883783
Upstream: http://github.com/karelzak/util-linux/commit/cbe3304bc43b3fceb06fb6e5dd822bb59abf1b84
Signed-off-by: Karel Zak <kzak@redhat.com>
---
sys-utils/lscpu.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 1aa7bff4d..748d545b6 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -369,8 +369,6 @@ static void read_physical_info_powerpc(struct lscpu_desc *desc)
return;
ntypes = strbe16toh(buf, 2);
-
- assert(ntypes <= 1);
if (!ntypes)
return;
--
2.29.2

View File

@ -0,0 +1,33 @@
From b3c5c1f39db58b057bb581f1d3bebcbeedeee1cb Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 17 Sep 2018 11:58:50 +0200
Subject: [PATCH 48/55] libfdisk: count gaps to possible size when resize
The current code counts only partition sizes when it counts possible
space, but we have gaps between the partitions. It seems better to
count all based on offsets rather than sizes.
Addresses: https://github.com/karelzak/util-linux/issues/693
Upstream: http://github.com/karelzak/util-linux/commit/2f35c1ead621f42f32f7777232568cb03185b473
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1900498
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libfdisk/src/partition.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libfdisk/src/partition.c b/libfdisk/src/partition.c
index a790dc9c9..ebcf6bf5c 100644
--- a/libfdisk/src/partition.c
+++ b/libfdisk/src/partition.c
@@ -1113,7 +1113,7 @@ static int resize_get_last_possible(
break;
} else {
last = pa;
- *maxsz += pa->size;
+ *maxsz = pa->size - (start - pa->start);
DBG(TAB, ul_debugobj(tb, " new max=%ju (last updated)", (uintmax_t) *maxsz));
}
}
--
2.29.2

View File

@ -0,0 +1,116 @@
From 780f79420073e0c09cd41afea28ac217a6d4ef29 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Fri, 26 Jun 2020 12:59:32 +0200
Subject: [PATCH 49/55] libmount: (parser) fix memory leak on error before
end-of-file
Let's simplify the loop where we add FS to the table. The optimization
for recoverable errors is a fragile overkill. The new code always
allocates and unrefs FS for each loop.
Addresses: https://github.com/karelzak/util-linux/pull/1068
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1900498
Upstream: http://github.com/karelzak/util-linux/commit/fe0d12d4f82269096f8d0cffc51ca9590814c284
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libmount/src/fs.c | 2 +-
libmount/src/tab_parse.c | 49 ++++++++++++++++++++++------------------
2 files changed, 28 insertions(+), 23 deletions(-)
diff --git a/libmount/src/fs.c b/libmount/src/fs.c
index def32253c..aae4961c3 100644
--- a/libmount/src/fs.c
+++ b/libmount/src/fs.c
@@ -34,7 +34,7 @@ struct libmnt_fs *mnt_new_fs(void)
fs->refcount = 1;
INIT_LIST_HEAD(&fs->ents);
- /*DBG(FS, ul_debugobj(fs, "alloc"));*/
+ DBG(FS, ul_debugobj(fs, "alloc"));
return fs;
}
diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c
index 10fc68279..719c1abca 100644
--- a/libmount/src/tab_parse.c
+++ b/libmount/src/tab_parse.c
@@ -608,7 +608,6 @@ static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *fi
int rc = -1;
int flags = 0;
pid_t tid = -1;
- struct libmnt_fs *fs = NULL;
struct libmnt_parser pa = { .line = 0 };
assert(tb);
@@ -628,19 +627,25 @@ static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *fi
if (filename && strcmp(filename, _PATH_PROC_MOUNTS) == 0)
flags = MNT_FS_KERNEL;
- while (!feof(f)) {
- if (!fs) {
- fs = mnt_new_fs();
- if (!fs)
- goto err;
+ do {
+ struct libmnt_fs *fs;
+
+ if (feof(f)) {
+ DBG(TAB, ul_debugobj(tb, "end-of-file"));
+ break;
}
+ fs = mnt_new_fs();
+ if (!fs)
+ goto err;
+ /* parse */
rc = mnt_table_parse_next(&pa, tb, fs);
- if (!rc && tb->fltrcb && tb->fltrcb(fs, tb->fltrcb_data))
- rc = 1; /* filtered out by callback... */
+ if (rc != 0 && tb->fltrcb && tb->fltrcb(fs, tb->fltrcb_data))
+ rc = 1; /* error filtered out by callback... */
- if (!rc) {
+ /* add to the table */
+ if (rc == 0) {
rc = mnt_table_add_fs(tb, fs);
fs->flags |= flags;
@@ -651,21 +656,21 @@ static int __table_parse_stream(struct libmnt_table *tb, FILE *f, const char *fi
}
}
- if (rc) {
- if (rc > 0) {
- mnt_reset_fs(fs);
- assert(fs->refcount == 1);
- continue; /* recoverable error, reuse fs*/
- }
+ /* remove refernece (or deallocate on error) */
+ mnt_unref_fs(fs);
- mnt_unref_fs(fs);
- if (feof(f))
- break;
- goto err; /* fatal error */
+ /* recoverable error */
+ if (rc > 0) {
+ DBG(TAB, ul_debugobj(tb, "recoverable error (continue)"));
+ continue;
}
- mnt_unref_fs(fs);
- fs = NULL;
- }
+
+ /* fatal errors */
+ if (rc < 0 && !feof(f)) {
+ DBG(TAB, ul_debugobj(tb, "fatal error"));
+ goto err;
+ }
+ } while (1);
DBG(TAB, ul_debugobj(tb, "%s: stop parsing (%d entries)",
filename, mnt_table_get_nents(tb)));
--
2.29.2

View File

@ -0,0 +1,104 @@
From 6700a458ef1bcd8fe2c066411bc415bc43ccdb8a Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Tue, 15 Dec 2020 11:17:42 +0100
Subject: [PATCH 50/55] lscpu: update ARM identifiers tables
Use the latest upstream identifiers to add FUJITSU and HiSilicon
implementers and many new ARM CPUs.
Upstream: http://github.com/karelzak/util-linux/commit/dd9b4cb32042def5b7767e26ebd294f7f52cd07f
Upstream: http://github.com/karelzak/util-linux/commit/a625b32e2c716723a28a49702a02c78274dd3bb6
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1883056
Signed-off-by: Karel Zak <kzak@redhat.com>
---
sys-utils/lscpu-arm.c | 27 ++++++++++++++++++++++++---
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/sys-utils/lscpu-arm.c b/sys-utils/lscpu-arm.c
index f3a746a62..2b178a72e 100644
--- a/sys-utils/lscpu-arm.c
+++ b/sys-utils/lscpu-arm.c
@@ -49,7 +49,7 @@ static const struct id_part arm_part[] = {
{ 0xc07, "Cortex-A7" },
{ 0xc08, "Cortex-A8" },
{ 0xc09, "Cortex-A9" },
- { 0xc0d, "Cortex-A12" },
+ { 0xc0d, "Cortex-A17" }, /* Originally A12 */
{ 0xc0f, "Cortex-A15" },
{ 0xc0e, "Cortex-A17" },
{ 0xc14, "Cortex-R4" },
@@ -60,19 +60,28 @@ static const struct id_part arm_part[] = {
{ 0xc21, "Cortex-M1" },
{ 0xc23, "Cortex-M3" },
{ 0xc24, "Cortex-M4" },
- { 0xc20, "Cortex-M7" },
+ { 0xc27, "Cortex-M7" },
{ 0xc60, "Cortex-M0+" },
{ 0xd01, "Cortex-A32" },
{ 0xd03, "Cortex-A53" },
{ 0xd04, "Cortex-A35" },
{ 0xd05, "Cortex-A55" },
+ { 0xd06, "Cortex-A65" },
{ 0xd07, "Cortex-A57" },
{ 0xd08, "Cortex-A72" },
{ 0xd09, "Cortex-A73" },
{ 0xd0a, "Cortex-A75" },
+ { 0xd0b, "Cortex-A76" },
+ { 0xd0c, "Neoverse-N1" },
+ { 0xd0d, "Cortex-A77" },
+ { 0xd0e, "Cortex-A76AE" },
{ 0xd13, "Cortex-R52" },
{ 0xd20, "Cortex-M23" },
{ 0xd21, "Cortex-M33" },
+ { 0xd41, "Cortex-A78" },
+ { 0xd42, "Cortex-A78AE" },
+ { 0xd4a, "Neoverse-E1" },
+ { 0xd4b, "Cortex-A78C" },
{ -1, "unknown" },
};
@@ -126,6 +135,7 @@ static const struct id_part samsung_part[] = {
static const struct id_part nvidia_part[] = {
{ 0x000, "Denver" },
{ 0x003, "Denver 2" },
+ { 0x004, "Carmel" },
{ -1, "unknown" },
};
@@ -167,6 +177,16 @@ static const struct id_part intel_part[] = {
{ -1, "unknown" },
};
+static const struct id_part fujitsu_part[] = {
+ { 0x001, "A64FX" },
+ { -1, "unknown" },
+};
+
+static const struct id_part hisi_part[] = {
+ { 0xd01, "Kunpeng-920" }, /* aka tsv110 */
+ { -1, "unknown" },
+};
+
static const struct id_part unknown_part[] = {
{ -1, "unknown" },
};
@@ -182,6 +202,8 @@ static const struct hw_impl hw_implementer[] = {
{ 0x42, brcm_part, "Broadcom" },
{ 0x43, cavium_part, "Cavium" },
{ 0x44, dec_part, "DEC" },
+ { 0x46, fujitsu_part, "FUJITSU" },
+ { 0x48, hisi_part, "HiSilicon" },
{ 0x4e, nvidia_part, "Nvidia" },
{ 0x50, apm_part, "APM" },
{ 0x51, qcom_part, "Qualcomm" },
@@ -191,7 +213,6 @@ static const struct hw_impl hw_implementer[] = {
{ 0x69, intel_part, "Intel" },
{ -1, unknown_part, "unknown" },
};
-
void arm_cpu_decode(struct lscpu_desc *desc)
{
int j, impl, part;
--
2.29.2

View File

@ -0,0 +1,214 @@
From 63d8d3e8d54326842677bc3d3a3e43a133846a71 Mon Sep 17 00:00:00 2001
From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Date: Tue, 15 Dec 2020 12:07:38 +0100
Subject: [PATCH 51/55] lscpu: use cluster on aarch64 machine which doesn't
have ACPI PPTT
lscpu may show the wrong number of sockets if the machine is aarch64 and
doesn't have ACPI PPTT.
That's because lscpu show the number of sockets by using a sysfs entry
(cpu/cpuX/topology/core_siblings). The sysfs entry is set by MPIDR_EL1
register if the machine doesn't have ACPI PPTT. MPIDR_EL1 doesn't show
the physical socket information directly. It shows the affinity level.
According to linux/arch/arm64/kernel/topology.c:store_cpu_topology(),
the top level of affinity is called as 'Cluster'.
Use Cluster instead of Socket on the machine which doesn't have ACPI PPTT.
Note, ARM SBBR v1.2 requires ACPI PPTT, so this patch is needed for the
machine which is based on SBBR v1.0 and v1.1.
[kzak@redhat.com: - port to old code
- change semantic to be same as current upstream]
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1883056
Upstream: 73c0a766ffbe60e013b55cfd716d531b5a6ae22a
Upstream: https://marc.info/?l=util-linux-ng&m=159984070611464&w=2
Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
---
sys-utils/lscpu.1 | 3 +++
sys-utils/lscpu.c | 65 ++++++++++++++++++++++++++++++++++++++++++-----
sys-utils/lscpu.h | 3 +++
3 files changed, 65 insertions(+), 6 deletions(-)
diff --git a/sys-utils/lscpu.1 b/sys-utils/lscpu.1
index b70f2e151..cf981d708 100644
--- a/sys-utils/lscpu.1
+++ b/sys-utils/lscpu.1
@@ -47,6 +47,9 @@ The logical core number. A core can contain several CPUs.
.B SOCKET
The logical socket number. A socket can contain several cores.
.TP
+.B CLUSTER
+The logical cluster number. A cluster can contain several cores.
+.TP
.B BOOK
The logical book number. A book can contain several sockets.
.TP
diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 748d545b6..a8b448fa0 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -70,6 +70,7 @@
#define _PATH_SYS_HYP_FEATURES "/sys/hypervisor/properties/features"
#define _PATH_SYS_CPU _PATH_SYS_SYSTEM "/cpu"
#define _PATH_SYS_NODE _PATH_SYS_SYSTEM "/node"
+#define _PATH_ACPI_PPTT "/sys/firmware/acpi/tables/PPTT"
#define _PATH_PROC_XEN "/proc/xen"
#define _PATH_PROC_XENCAP _PATH_PROC_XEN "/capabilities"
#define _PATH_PROC_CPUINFO "/proc/cpuinfo"
@@ -168,6 +169,7 @@ enum {
COL_CPU,
COL_CORE,
COL_SOCKET,
+ COL_CLUSTER,
COL_NODE,
COL_BOOK,
COL_DRAWER,
@@ -194,6 +196,7 @@ static struct lscpu_coldesc coldescs[] =
[COL_CPU] = { "CPU", N_("logical CPU number"), 1 },
[COL_CORE] = { "CORE", N_("logical core number") },
[COL_SOCKET] = { "SOCKET", N_("logical socket number") },
+ [COL_CLUSTER] = { "CLUSTER", N_("logical cluster number") },
[COL_NODE] = { "NODE", N_("logical NUMA node number") },
[COL_BOOK] = { "BOOK", N_("logical book number") },
[COL_DRAWER] = { "DRAWER", N_("logical drawer number") },
@@ -383,6 +386,26 @@ static void read_physical_info_powerpc(
}
#endif
+static int is_fallback_to_cluster(struct lscpu_desc *desc)
+{
+ char *arch;
+ struct stat st;
+ struct utsname utsbuf;
+
+ if (desc)
+ arch = desc->arch;
+ else {
+ if (uname(&utsbuf) == -1)
+ err(EXIT_FAILURE, _("error: uname failed"));
+ arch = utsbuf.machine;
+ }
+
+ if (!(strcmp(arch, "aarch64")) && (stat(_PATH_ACPI_PPTT, &st) < 0))
+ return 1;
+ else
+ return 0;
+}
+
static void
read_basicinfo(struct lscpu_desc *desc, struct lscpu_modifier *mod)
@@ -1344,6 +1367,10 @@ get_cell_data(struct lscpu_desc *desc, int idx, int col,
snprintf(buf, bufsz, "%zu", i);
}
break;
+ case COL_CLUSTER:
+ if (!desc->is_cluster)
+ break;
+ /* fallthrough */
case COL_SOCKET:
if (mod->physical) {
if (desc->socketids[idx] == -1)
@@ -1799,12 +1826,18 @@ print_summary(struct lscpu_desc *desc, struct lscpu_modifier *mod)
if (fd)
fclose(fd);
}
+
+
if (desc->mtid)
threads_per_core = atoi(desc->mtid) + 1;
add_summary_n(tb, _("Thread(s) per core:"),
threads_per_core ?: desc->nthreads / desc->ncores);
- add_summary_n(tb, _("Core(s) per socket:"),
- cores_per_socket ?: desc->ncores / desc->nsockets);
+ if (desc->is_cluster)
+ add_summary_n(tb, _("Core(s) per cluster:"),
+ cores_per_socket ?: desc->ncores / desc->nsockets);
+ else
+ add_summary_n(tb, _("Core(s) per socket:"),
+ cores_per_socket ?: desc->ncores / desc->nsockets);
if (desc->nbooks) {
add_summary_n(tb, _("Socket(s) per book:"),
sockets_per_book ?: desc->nsockets / desc->nbooks);
@@ -1816,7 +1849,17 @@ print_summary(struct lscpu_desc *desc, struct lscpu_modifier *mod)
add_summary_n(tb, _("Book(s):"), books_per_drawer ?: desc->nbooks);
}
} else {
- add_summary_n(tb, _("Socket(s):"), sockets_per_book ?: desc->nsockets);
+ if (desc->is_cluster) {
+ if (desc->nr_socket_on_cluster > 0)
+ add_summary_n(tb, _("Socket(s):"), desc->nr_socket_on_cluster);
+ else
+ add_summary_s(tb, _("Socket(s):"), "-");
+
+ add_summary_n(tb, _("Cluster(s):"),
+ sockets_per_book ?: desc->nsockets);
+ } else
+ add_summary_n(tb, _("Socket(s):"),
+ sockets_per_book ?: desc->nsockets);
}
}
if (desc->nnodes)
@@ -2060,10 +2103,13 @@ int main(int argc, char *argv[])
qsort(desc->ecaches, desc->necaches,
sizeof(struct cpu_cache), cachecmp);
+ desc->is_cluster = is_fallback_to_cluster(desc);
+
read_nodes(desc);
read_hypervisor(desc, mod);
arm_cpu_decode(desc);
+
switch(mod->mode) {
case OUTPUT_SUMMARY:
print_summary(desc, mod);
@@ -2072,7 +2118,10 @@ int main(int argc, char *argv[])
if (!ncolumns) {
columns[ncolumns++] = COL_CPU;
columns[ncolumns++] = COL_CORE;
- columns[ncolumns++] = COL_SOCKET;
+ if (desc->is_cluster)
+ columns[ncolumns++] = COL_CLUSTER;
+ else
+ columns[ncolumns++] = COL_SOCKET;
columns[ncolumns++] = COL_NODE;
columns[ncolumns++] = COL_CACHE;
mod->compat = 1;
@@ -2089,8 +2138,12 @@ int main(int argc, char *argv[])
columns[ncolumns++] = COL_DRAWER;
if (desc->bookmaps)
columns[ncolumns++] = COL_BOOK;
- if (desc->socketmaps)
- columns[ncolumns++] = COL_SOCKET;
+ if (desc->socketmaps) {
+ if (desc->is_cluster)
+ columns[ncolumns++] = COL_CLUSTER;
+ else
+ columns[ncolumns++] = COL_SOCKET;
+ }
if (desc->coremaps)
columns[ncolumns++] = COL_CORE;
if (desc->caches)
diff --git a/sys-utils/lscpu.h b/sys-utils/lscpu.h
index 3d1885a3e..bffa9df60 100644
--- a/sys-utils/lscpu.h
+++ b/sys-utils/lscpu.h
@@ -158,6 +158,9 @@ struct lscpu_desc {
int physsockets; /* Physical sockets (modules) */
int physchips; /* Physical chips */
int physcoresperchip; /* Physical cores per chip */
+
+ int is_cluster;
+ int nr_socket_on_cluster;
};
enum {
--
2.29.2

View File

@ -0,0 +1,115 @@
From 60a1a900b22e6d714fbbde03322569ad4732b4ba Mon Sep 17 00:00:00 2001
From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Date: Fri, 11 Sep 2020 09:53:26 -0400
Subject: [PATCH 52/55] lscpu-dmi: split to parse dmi table
Split out a function to parse dmi table.
Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
---
sys-utils/lscpu-dmi.c | 60 ++++++++++++++++++++++++++++---------------
1 file changed, 40 insertions(+), 20 deletions(-)
diff --git a/sys-utils/lscpu-dmi.c b/sys-utils/lscpu-dmi.c
index 29bd2e4fc..9b57fe9e6 100644
--- a/sys-utils/lscpu-dmi.c
+++ b/sys-utils/lscpu-dmi.c
@@ -42,6 +42,12 @@ struct dmi_header
uint8_t *data;
};
+struct dmi_info {
+ char *vendor;
+ char *product;
+ char *manufacturer;
+};
+
static int checksum(const uint8_t *buf, size_t len)
{
uint8_t sum = 0;
@@ -105,20 +111,13 @@ static char *dmi_string(const struct dmi_header *dm, uint8_t s)
return bp;
}
-static int hypervisor_from_dmi_table(uint32_t base, uint16_t len,
- uint16_t num, const char *devmem)
+static int parse_dmi_table(uint16_t len, uint16_t num,
+ uint8_t *data,
+ struct dmi_info *di)
{
- uint8_t *buf;
- uint8_t *data;
+ uint8_t *buf = data;
+ int rc = -1;
int i = 0;
- char *vendor = NULL;
- char *product = NULL;
- char *manufacturer = NULL;
- int rc = HYPER_NONE;
-
- data = buf = get_mem_chunk(base, len, devmem);
- if (!buf)
- goto done;
/* 4 is the length of an SMBIOS structure header */
while (i < num && data + 4 <= buf + len) {
@@ -142,11 +141,11 @@ static int hypervisor_from_dmi_table(uint32_t base, uint16_t len,
next += 2;
switch (h.type) {
case 0:
- vendor = dmi_string(&h, data[0x04]);
+ di->vendor = dmi_string(&h, data[0x04]);
break;
case 1:
- manufacturer = dmi_string(&h, data[0x04]);
- product = dmi_string(&h, data[0x05]);
+ di->manufacturer = dmi_string(&h, data[0x04]);
+ di->product = dmi_string(&h, data[0x05]);
break;
default:
break;
@@ -155,15 +154,36 @@ static int hypervisor_from_dmi_table(uint32_t base, uint16_t len,
data = next;
i++;
}
- if (manufacturer && !strcmp(manufacturer, "innotek GmbH"))
+ rc = 0;
+done:
+ return rc;
+}
+
+static int hypervisor_from_dmi_table(uint32_t base, uint16_t len,
+ uint16_t num, const char *devmem)
+{
+ uint8_t *data;
+ int rc = HYPER_NONE;
+ struct dmi_info di;
+
+ data = get_mem_chunk(base, len, devmem);
+ if (!data)
+ return rc;
+
+ memset(&di, 0, sizeof(struct dmi_info));
+ rc = parse_dmi_table(len, num, data, &di);
+ if (rc < 0)
+ goto done;
+
+ if (di.manufacturer && !strcmp(di.manufacturer, "innotek GmbH"))
rc = HYPER_INNOTEK;
- else if (manufacturer && strstr(manufacturer, "HITACHI") &&
- product && strstr(product, "LPAR"))
+ else if (di.manufacturer && strstr(di.manufacturer, "HITACHI") &&
+ di.product && strstr(di.product, "LPAR"))
rc = HYPER_HITACHI;
- else if (vendor && !strcmp(vendor, "Parallels"))
+ else if (di.vendor && !strcmp(di.vendor, "Parallels"))
rc = HYPER_PARALLELS;
done:
- free(buf);
+ free(data);
return rc;
}
--
2.29.2

View File

@ -0,0 +1,91 @@
From 32c4fe66ae9107a7fae556be02c1401e5046071b Mon Sep 17 00:00:00 2001
From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Date: Fri, 11 Sep 2020 09:53:27 -0400
Subject: [PATCH 53/55] lscpu: add helper to get physical sockets
Add a helper function, get_number_of_physical_sockets_from_dmi(),
to get physical sockets from DMI table in case of the sysfs for
cpu topology doesn't have the physical socket information.
get_number_of_physical_sockets_from_dmi() parse the DMI table
and counts the number of SMBIOS Processor Information (Type04)
structure.
Note, ARM SBBR v1.0 and newer requires SMBIOS Processor Information
(Type04). And ARM SBBR v1.2 requires ACPI PPTT which has physical socket
information. So the helper function is useful for the machine base on
SBBR v1.0 and v1.1.
Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
---
sys-utils/lscpu-dmi.c | 30 ++++++++++++++++++++++++++++++
sys-utils/lscpu.h | 1 +
2 files changed, 31 insertions(+)
diff --git a/sys-utils/lscpu-dmi.c b/sys-utils/lscpu-dmi.c
index 9b57fe9e6..31127f48a 100644
--- a/sys-utils/lscpu-dmi.c
+++ b/sys-utils/lscpu-dmi.c
@@ -46,6 +46,7 @@ struct dmi_info {
char *vendor;
char *product;
char *manufacturer;
+ int sockets;
};
static int checksum(const uint8_t *buf, size_t len)
@@ -147,6 +148,9 @@ static int parse_dmi_table(uint16_t len, uint16_t num,
di->manufacturer = dmi_string(&h, data[0x04]);
di->product = dmi_string(&h, data[0x05]);
break;
+ case 4:
+ di->sockets++;
+ break;
default:
break;
}
@@ -323,3 +327,29 @@ done:
free(buf);
return rc < 0 ? HYPER_NONE : rc;
}
+
+int get_number_of_physical_sockets_from_dmi(void)
+{
+ static char const sys_fw_dmi_tables[] = _PATH_SYS_DMI;
+ struct dmi_info di;
+ struct stat st;
+ uint8_t *data;
+ int rc = -1;
+
+ if (stat(sys_fw_dmi_tables, &st))
+ return rc;
+
+ data = get_mem_chunk(0, st.st_size, sys_fw_dmi_tables);
+ if (!data)
+ return rc;
+
+ memset(&di, 0, sizeof(struct dmi_info));
+ rc = parse_dmi_table(st.st_size, st.st_size/4, data, &di);
+
+ free(data);
+
+ if ((rc < 0) || !di.sockets)
+ return rc;
+ else
+ return di.sockets;
+}
diff --git a/sys-utils/lscpu.h b/sys-utils/lscpu.h
index bffa9df60..b190afd21 100644
--- a/sys-utils/lscpu.h
+++ b/sys-utils/lscpu.h
@@ -186,6 +186,7 @@ struct lscpu_modifier {
};
extern int read_hypervisor_dmi(void);
+extern int get_number_of_physical_sockets_from_dmi(void);
extern void arm_cpu_decode(struct lscpu_desc *desc);
#endif /* LSCPU_H */
--
2.29.2

View File

@ -0,0 +1,51 @@
From ac6651b2bc599af707ccc96936bb028d31c1aea8 Mon Sep 17 00:00:00 2001
From: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Date: Fri, 11 Sep 2020 09:53:28 -0400
Subject: [PATCH 54/56] lscpu: show physical socket on aarch64 without ACPI
PPTT
Show the number of physical socket even if the sysfs doesn't have
the physical socket information.
Note, lscpu cannot show the number of socket info for unprivileged
users because it needs to access the DMI table.
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1883056
Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Signed-off-by: Karel Zak <kzak@redhat.com>
---
sys-utils/lscpu.c | 6 ++++--
sys-utils/lscpu.h | 1 -
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index a8b448fa0..dc6dc97c3 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -1850,8 +1850,10 @@ print_summary(struct lscpu_desc *desc, struct lscpu_modifier *mod)
}
} else {
if (desc->is_cluster) {
- if (desc->nr_socket_on_cluster > 0)
- add_summary_n(tb, _("Socket(s):"), desc->nr_socket_on_cluster);
+ int sockets = get_number_of_physical_sockets_from_dmi();
+
+ if (sockets > 0)
+ add_summary_n(tb, _("Socket(s):"), sockets);
else
add_summary_s(tb, _("Socket(s):"), "-");
diff --git a/sys-utils/lscpu.h b/sys-utils/lscpu.h
index b190afd21..1aef8202d 100644
--- a/sys-utils/lscpu.h
+++ b/sys-utils/lscpu.h
@@ -160,7 +160,6 @@ struct lscpu_desc {
int physcoresperchip; /* Physical cores per chip */
int is_cluster;
- int nr_socket_on_cluster;
};
enum {
--
2.29.2

View File

@ -0,0 +1,137 @@
From 7089a63d03b35743de533686906c451b917d0909 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Wed, 16 Dec 2020 13:08:51 +0100
Subject: [PATCH 55/56] lscpu: (arm) read vendor and model from BIOS
This patch backports the current upstream code to read CPU vendor and
model name from BIOS.
Upstream: http://github.com/karelzak/util-linux/commit/8014104bea78f6f82cb82e16329b562e60ecdc87
Upstream: http://github.com/karelzak/util-linux/commit/367c85c472869b75eaf770d4be0b360e30710b95
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1883056
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1882740
Signed-off-by: Karel Zak <kzak@redhat.com>
---
sys-utils/lscpu-dmi.c | 44 +++++++++++++++++++++++++++++++++++++++++++
sys-utils/lscpu.c | 7 +++++++
sys-utils/lscpu.h | 3 +++
3 files changed, 54 insertions(+)
diff --git a/sys-utils/lscpu-dmi.c b/sys-utils/lscpu-dmi.c
index 31127f48a..3bdd7dcb2 100644
--- a/sys-utils/lscpu-dmi.c
+++ b/sys-utils/lscpu-dmi.c
@@ -28,6 +28,7 @@
#include <stdio.h>
#include "lscpu.h"
+#include "all-io.h"
#define _PATH_SYS_DMI "/sys/firmware/dmi/tables/DMI"
@@ -353,3 +354,46 @@ int get_number_of_physical_sockets_from_dmi(void)
else
return di.sockets;
}
+
+
+#define _PATH_SYS_DMI_TYPE4 "/sys/firmware/dmi/entries/4-0/raw"
+#define PROC_MFR_OFFSET 0x07
+#define PROC_VERSION_OFFSET 0x10
+
+/*
+ * Use firmware to get human readable names
+ */
+int arm_smbios_decode(struct lscpu_desc *desc)
+{
+ uint8_t data[8192];
+ char buf[128], *str;
+ struct dmi_header h;
+ int fd;
+ ssize_t rs;
+
+ fd = open(_PATH_SYS_DMI_TYPE4, O_RDONLY);
+ if (fd < 0)
+ return fd;
+
+ rs = read_all(fd, (char *) data, 8192);
+ close(fd);
+
+ if (rs == -1)
+ return -1;
+
+ to_dmi_header(&h, data);
+
+ str = dmi_string(&h, data[PROC_MFR_OFFSET]);
+ if (str) {
+ xstrncpy(buf, str, 127);
+ desc->bios_vendor = xstrdup(buf);
+ }
+
+ str = dmi_string(&h, data[PROC_VERSION_OFFSET]);
+ if (str) {
+ xstrncpy(buf, str, 127);
+ desc->bios_modelname = xstrdup(buf);
+ }
+
+ return 0;
+}
diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index dc6dc97c3..70a797dd6 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -1868,6 +1868,8 @@ print_summary(struct lscpu_desc *desc, struct lscpu_modifier *mod)
add_summary_n(tb, _("NUMA node(s):"), desc->nnodes);
if (desc->vendor)
add_summary_s(tb, _("Vendor ID:"), desc->vendor);
+ if (desc->bios_vendor)
+ add_summary_s(tb, _("BIOS Vendor ID:"), desc->bios_vendor);
if (desc->machinetype)
add_summary_s(tb, _("Machine type:"), desc->machinetype);
if (desc->family)
@@ -1876,6 +1878,8 @@ print_summary(struct lscpu_desc *desc, struct lscpu_modifier *mod)
add_summary_s(tb, _("Model:"), desc->revision ? desc->revision : desc->model);
if (desc->modelname || desc->cpu)
add_summary_s(tb, _("Model name:"), desc->cpu ? desc->cpu : desc->modelname);
+ if (desc->bios_modelname)
+ add_summary_s(tb, _("BIOS Model name:"), desc->bios_modelname);
if (desc->stepping)
add_summary_s(tb, _("Stepping:"), desc->stepping);
if (desc->mhz)
@@ -2109,6 +2113,9 @@ int main(int argc, char *argv[])
read_nodes(desc);
read_hypervisor(desc, mod);
+
+ if (mod->system == SYSTEM_LIVE)
+ arm_smbios_decode(desc);
arm_cpu_decode(desc);
diff --git a/sys-utils/lscpu.h b/sys-utils/lscpu.h
index 1aef8202d..802719eeb 100644
--- a/sys-utils/lscpu.h
+++ b/sys-utils/lscpu.h
@@ -79,10 +79,12 @@ struct polarization_modes {
struct lscpu_desc {
char *arch;
char *vendor;
+ char *bios_vendor; /* aarch64 */
char *machinetype; /* s390 */
char *family;
char *model;
char *modelname;
+ char *bios_modelname; /* aarch64 */
char *revision; /* alternative for model (ppc) */
char *cpu; /* alternative for modelname (ppc, sparc) */
char *virtflag; /* virtualization flag (vmx, svm) */
@@ -187,5 +189,6 @@ struct lscpu_modifier {
extern int read_hypervisor_dmi(void);
extern int get_number_of_physical_sockets_from_dmi(void);
extern void arm_cpu_decode(struct lscpu_desc *desc);
+extern int arm_smbios_decode(struct lscpu_desc *desc);
#endif /* LSCPU_H */
--
2.29.2

View File

@ -0,0 +1,28 @@
From 2193cfc5ee3f417e276c181fe39455646399153b Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Mon, 17 Sep 2018 16:22:14 +0200
Subject: [PATCH 56/56] tests: update sfdisk resize
Upstream: http://github.com/karelzak/util-linux/commit/a1b463d94afdae65ab5bfb192a58f1ceeb13679a
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1900498
Signed-off-by: Karel Zak <kzak@redhat.com>
---
tests/expected/sfdisk/dos-resize-logical | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/expected/sfdisk/dos-resize-logical b/tests/expected/sfdisk/dos-resize-logical
index 9ceb9a327..a427ff010 100644
--- a/tests/expected/sfdisk/dos-resize-logical
+++ b/tests/expected/sfdisk/dos-resize-logical
@@ -26,7 +26,7 @@ Device Boot Start End Sectors Size Id Type
<removed>3 6144 8191 2048 1M 83 Linux
<removed>4 8192 28671 20480 10M 5 Extended
<removed>5 10240 12287 2048 1M 83 Linux
-<removed>6 14336 26623 12288 6M 83 Linux
+<removed>6 14336 28671 14336 7M 83 Linux
The partition table has been altered.
Calling ioctl() to re-read partition table.
--
2.29.2

View File

@ -2,7 +2,7 @@
Summary: A collection of basic system utilities
Name: util-linux
Version: 2.32.1
Release: 24%{?dist}
Release: 27%{?dist}
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
Group: System Environment/Base
URL: http://en.wikipedia.org/wiki/Util-linux
@ -180,6 +180,31 @@ Patch41: 0041-libmount-fix-mount-a-EBUSY-for-cifs.patch
# 1848919 - Update losetup man page to fix "--direct-io" defaults
Patch42: 0042-Manual-pages-losetup.8-Fix-direct-io-defaults.patch
### RHEL-8.4
###
# 1884194 - RHEL-8: chrt command does not support the -R option
Patch43: 0043-chrt-use-SCHED_FLAG_RESET_ON_FORK-for-sched_setattr.patch
Patch44: 0044-chrt-don-t-restrict-reset-on-fork-add-more-info-to-m.patch
# 1855759 - mount.8: clarify (no)suid behavior on file capabilities
Patch45: 0045-mount.8-clarify-no-suid-behavior-on-file-capabilitie.patch
# 1861670 - lsblk can not show serial information for virtio disk
Patch46: 0046-lsblk-Fall-back-to-ID_SERIAL.patch
# 1883783 - lscpu: avoid segfault on PowerPC systems with valid hardware configurations
Patch47: 0047-lscpu-avoid-segfault-on-PowerPC-systems-with-valid-h.patch
# 1900498 - libfdisk/libmount: backport two patches for upstream systemd
Patch48: 0048-libfdisk-count-gaps-to-possible-size-when-resize.patch
Patch49: 0049-libmount-parser-fix-memory-leak-on-error-before-end-.patch
# 1883056 - lscpu support for Fujitsu A64FX
Patch50: 0050-lscpu-update-ARM-identifiers-tables.patch
Patch51: 0051-lscpu-use-cluster-on-aarch64-machine-which-doesn-t-h.patch
Patch52: 0052-lscpu-dmi-split-to-parse-dmi-table.patch
Patch53: 0053-lscpu-add-helper-to-get-physical-sockets.patch
Patch54: 0054-lscpu-show-physical-socket-on-aarch64-without-ACPI-P.patch
# 1882740 lscpu: use SMBIOS Type 4 strings for CPU vendor and model on ARM
Patch55: 0055-lscpu-arm-read-vendor-and-model-from-BIOS.patch
# 1900498 - libfdisk/libmount: backport two patches for upstream systemd
Patch56: 0056-tests-update-sfdisk-resize.patch
%description
The util-linux package contains a large variety of low-level system
@ -1045,6 +1070,21 @@ fi
%{_libdir}/python*/site-packages/libmount/
%changelog
* Tue Jan 19 2021 Karel Zak <kzak@redhat.com> 2.32.1-27
- update lscpu-show-physical-socket-on-aarch64-without-ACPI-P.patch (#1882740)
* Wed Dec 16 2020 Karel Zak <kzak@redhat.com> 2.32.1-26
- update regression tests (related to #1900498)
* Wed Dec 16 2020 Karel Zak <kzak@redhat.com> 2.32.1-25
- fix #1884194 - RHEL-8: chrt command does not support the -R option
- fix #1855759 - mount.8: clarify (no)suid behavior on file capabilities
- fix #1861670 - lsblk can not show serial information for virtio disk
- fix #1883783 - lscpu: avoid segfault on PowerPC systems with valid hardware configurations
- fix #1900498 - libfdisk/libmount: backport two patches for upstream systemd
- fix #1883056 - lscpu support for Fujitsu A64FX
- fix #1882740 - lscpu: use SMBIOS Type 4 strings for CPU vendor and model on ARM
* Fri Jun 26 2020 Karel Zak <kzak@redhat.com> 2.32.1-24
- fix #1848919 - Update losetup man page to fix "--direct-io" defaults