git: b76961e3a21a - main - kdump: Print splice structures
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 10 Sep 2024 16:55:25 UTC
The branch main has been updated by markj:
URL: https://cgit.FreeBSD.org/src/commit/?id=b76961e3a21a820f15ebff9d115ff67feb910cec
commit b76961e3a21a820f15ebff9d115ff67feb910cec
Author: Mark Johnston <markj@FreeBSD.org>
AuthorDate: 2024-09-10 16:51:26 +0000
Commit: Mark Johnston <markj@FreeBSD.org>
CommitDate: 2024-09-10 16:52:01 +0000
kdump: Print splice structures
MFC after: 3 months
Sponsored by: Klara, Inc.
Sponsored by: Stormshield
---
lib/libsysdecode/ktrace.out | Bin 0 -> 23596 bytes
usr.bin/kdump/kdump.c | 16 ++++++++++++++++
2 files changed, 16 insertions(+)
diff --git a/lib/libsysdecode/ktrace.out b/lib/libsysdecode/ktrace.out
new file mode 100644
index 000000000000..29d35f0de3ce
Binary files /dev/null and b/lib/libsysdecode/ktrace.out differ
diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c
index f7ac82c757fa..41d3eb594149 100644
--- a/usr.bin/kdump/kdump.c
+++ b/usr.bin/kdump/kdump.c
@@ -105,6 +105,7 @@ void ktruser(int, void *);
void ktrcaprights(cap_rights_t *);
void ktritimerval(struct itimerval *it);
void ktrsockaddr(struct sockaddr *);
+void ktrsplice(struct splice *);
void ktrstat(struct stat *);
void ktrstruct(char *, size_t);
void ktrcapfail(struct ktr_cap_fail *);
@@ -1923,6 +1924,14 @@ ktrsockaddr(struct sockaddr *sa)
printf(" }\n");
}
+void
+ktrsplice(struct splice *sp)
+{
+ printf("struct splice { fd=%d, max=%#jx, idle=%jd.%06jd }\n",
+ sp->sp_fd, (uintmax_t)sp->sp_max, (intmax_t)sp->sp_idle.tv_sec,
+ (intmax_t)sp->sp_idle.tv_usec);
+}
+
void
ktrstat(struct stat *statp)
{
@@ -2111,6 +2120,13 @@ ktrstruct(char *buf, size_t buflen)
memcpy(set, data, datalen);
ktrbitset(name, set, datalen);
free(set);
+ } else if (strcmp(name, "splice") == 0) {
+ struct splice sp;
+
+ if (datalen != sizeof(sp))
+ goto invalid;
+ memcpy(&sp, data, datalen);
+ ktrsplice(&sp);
} else {
#ifdef SYSDECODE_HAVE_LINUX
if (ktrstruct_linux(name, data, datalen) == false)