From 2a891f1feb2e67ab5fdbb473405797c2efc34caf Mon Sep 17 00:00:00 2001 From: bdrewery Date: Wed, 24 Feb 2016 17:20:11 +0000 Subject: DIRDEPS_BUILD: Regenerate without local dependencies. These are no longer needed after the recent 'beforebuild: depend' changes and hooking DIRDEPS_BUILD into a subset of FAST_DEPEND which supports skipping 'make depend'. Sponsored by: EMC / Isilon Storage Division --- bin/csh/Makefile.depend | 222 ---------------------------------------------- bin/expr/Makefile.depend | 2 - bin/rmail/Makefile.depend | 2 - bin/sh/Makefile.depend | 94 -------------------- 4 files changed, 320 deletions(-) (limited to 'bin') diff --git a/bin/csh/Makefile.depend b/bin/csh/Makefile.depend index ab84f40..c7bb5b0 100644 --- a/bin/csh/Makefile.depend +++ b/bin/csh/Makefile.depend @@ -18,226 +18,4 @@ DIRDEPS = \ .if ${DEP_RELDIR} == ${_DEP_RELDIR} # local dependencies - needed for -jN in clean tree -ed.chared.o: ed.defns.h -ed.chared.o: sh.err.h -ed.chared.o: tc.const.h -ed.chared.po: ed.defns.h -ed.chared.po: sh.err.h -ed.chared.po: tc.const.h -ed.defns.o: sh.err.h -ed.defns.o: tc.const.h -ed.defns.po: sh.err.h -ed.defns.po: tc.const.h -ed.init.o: ed.defns.h -ed.init.o: sh.err.h -ed.init.o: tc.const.h -ed.init.po: ed.defns.h -ed.init.po: sh.err.h -ed.init.po: tc.const.h -ed.inputl.o: ed.defns.h -ed.inputl.o: sh.err.h -ed.inputl.o: tc.const.h -ed.inputl.po: ed.defns.h -ed.inputl.po: sh.err.h -ed.inputl.po: tc.const.h -ed.refresh.o: sh.err.h -ed.refresh.o: tc.const.h -ed.refresh.po: sh.err.h -ed.refresh.po: tc.const.h -ed.screen.o: ed.defns.h -ed.screen.o: sh.err.h -ed.screen.o: tc.const.h -ed.screen.po: ed.defns.h -ed.screen.po: sh.err.h -ed.screen.po: tc.const.h -ed.term.o: sh.err.h -ed.term.o: tc.const.h -ed.term.po: sh.err.h -ed.term.po: tc.const.h -ed.xmap.o: ed.defns.h -ed.xmap.o: sh.err.h -ed.xmap.o: tc.const.h -ed.xmap.po: ed.defns.h -ed.xmap.po: sh.err.h -ed.xmap.po: tc.const.h -glob.o: sh.err.h -glob.o: tc.const.h -glob.po: sh.err.h -glob.po: tc.const.h -mi.termios.o: sh.err.h -mi.termios.o: tc.const.h -mi.termios.po: sh.err.h -mi.termios.po: tc.const.h -sh.char.o: sh.err.h -sh.char.o: tc.const.h -sh.char.po: sh.err.h -sh.char.po: tc.const.h -sh.dir.o: sh.err.h -sh.dir.o: tc.const.h -sh.dir.po: sh.err.h -sh.dir.po: tc.const.h -sh.dol.o: sh.err.h -sh.dol.o: tc.const.h -sh.dol.po: sh.err.h -sh.dol.po: tc.const.h -sh.err.o: sh.err.h -sh.err.o: tc.const.h -sh.err.po: sh.err.h -sh.err.po: tc.const.h -sh.exec.o: sh.err.h -sh.exec.o: tc.const.h -sh.exec.po: sh.err.h -sh.exec.po: tc.const.h -sh.exp.o: sh.err.h -sh.exp.o: tc.const.h -sh.exp.po: sh.err.h -sh.exp.po: tc.const.h -sh.file.o: sh.err.h -sh.file.o: tc.const.h -sh.file.po: sh.err.h -sh.file.po: tc.const.h -sh.func.o: sh.err.h -sh.func.o: tc.const.h -sh.func.po: sh.err.h -sh.func.po: tc.const.h -sh.glob.o: sh.err.h -sh.glob.o: tc.const.h -sh.glob.po: sh.err.h -sh.glob.po: tc.const.h -sh.hist.o: sh.err.h -sh.hist.o: tc.const.h -sh.hist.po: sh.err.h -sh.hist.po: tc.const.h -sh.init.o: sh.err.h -sh.init.o: tc.const.h -sh.init.po: sh.err.h -sh.init.po: tc.const.h -sh.lex.o: sh.err.h -sh.lex.o: tc.const.h -sh.lex.po: sh.err.h -sh.lex.po: tc.const.h -sh.misc.o: sh.err.h -sh.misc.o: tc.const.h -sh.misc.po: sh.err.h -sh.misc.po: tc.const.h -sh.o: sh.err.h -sh.o: tc.const.h -sh.parse.o: sh.err.h -sh.parse.o: tc.const.h -sh.parse.po: sh.err.h -sh.parse.po: tc.const.h -sh.po: sh.err.h -sh.po: tc.const.h -sh.print.o: sh.err.h -sh.print.o: tc.const.h -sh.print.po: sh.err.h -sh.print.po: tc.const.h -sh.proc.o: sh.err.h -sh.proc.o: tc.const.h -sh.proc.po: sh.err.h -sh.proc.po: tc.const.h -sh.sem.o: sh.err.h -sh.sem.o: tc.const.h -sh.sem.po: sh.err.h -sh.sem.po: tc.const.h -sh.set.o: sh.err.h -sh.set.o: tc.const.h -sh.set.po: sh.err.h -sh.set.po: tc.const.h -sh.time.o: sh.err.h -sh.time.o: tc.const.h -sh.time.po: sh.err.h -sh.time.po: tc.const.h -tc.alloc.o: sh.err.h -tc.alloc.o: tc.const.h -tc.alloc.po: sh.err.h -tc.alloc.po: tc.const.h -tc.bind.o: ed.defns.h -tc.bind.o: sh.err.h -tc.bind.o: tc.const.h -tc.bind.po: ed.defns.h -tc.bind.po: sh.err.h -tc.bind.po: tc.const.h -tc.const.o: sh.err.h -tc.const.o: tc.const.h -tc.const.po: sh.err.h -tc.const.po: tc.const.h -tc.defs.o: sh.err.h -tc.defs.o: tc.const.h -tc.defs.o: tc.defs.c -tc.defs.po: sh.err.h -tc.defs.po: tc.const.h -tc.defs.po: tc.defs.c -tc.disc.o: sh.err.h -tc.disc.o: tc.const.h -tc.disc.po: sh.err.h -tc.disc.po: tc.const.h -tc.func.o: ed.defns.h -tc.func.o: sh.err.h -tc.func.o: tc.const.h -tc.func.po: ed.defns.h -tc.func.po: sh.err.h -tc.func.po: tc.const.h -tc.nls.o: sh.err.h -tc.nls.o: tc.const.h -tc.nls.po: sh.err.h -tc.nls.po: tc.const.h -tc.os.o: ed.defns.h -tc.os.o: sh.err.h -tc.os.o: tc.const.h -tc.os.po: ed.defns.h -tc.os.po: sh.err.h -tc.os.po: tc.const.h -tc.printf.o: sh.err.h -tc.printf.o: tc.const.h -tc.printf.po: sh.err.h -tc.printf.po: tc.const.h -tc.prompt.o: sh.err.h -tc.prompt.o: tc.const.h -tc.prompt.po: sh.err.h -tc.prompt.po: tc.const.h -tc.sched.o: sh.err.h -tc.sched.o: tc.const.h -tc.sched.po: sh.err.h -tc.sched.po: tc.const.h -tc.sig.o: sh.err.h -tc.sig.o: tc.const.h -tc.sig.po: sh.err.h -tc.sig.po: tc.const.h -tc.str.o: sh.err.h -tc.str.o: tc.const.h -tc.str.po: sh.err.h -tc.str.po: tc.const.h -tc.vers.o: sh.err.h -tc.vers.o: tc.const.h -tc.vers.po: sh.err.h -tc.vers.po: tc.const.h -tc.who.o: sh.err.h -tc.who.o: tc.const.h -tc.who.po: sh.err.h -tc.who.po: tc.const.h -tw.color.o: sh.err.h -tw.color.o: tc.const.h -tw.color.po: sh.err.h -tw.color.po: tc.const.h -tw.comp.o: sh.err.h -tw.comp.o: tc.const.h -tw.comp.po: sh.err.h -tw.comp.po: tc.const.h -tw.help.o: sh.err.h -tw.help.o: tc.const.h -tw.help.po: sh.err.h -tw.help.po: tc.const.h -tw.init.o: sh.err.h -tw.init.o: tc.const.h -tw.init.po: sh.err.h -tw.init.po: tc.const.h -tw.parse.o: sh.err.h -tw.parse.o: tc.const.h -tw.parse.po: sh.err.h -tw.parse.po: tc.const.h -tw.spell.o: sh.err.h -tw.spell.o: tc.const.h -tw.spell.po: sh.err.h -tw.spell.po: tc.const.h .endif diff --git a/bin/expr/Makefile.depend b/bin/expr/Makefile.depend index 9d55364..ca0b2f9 100644 --- a/bin/expr/Makefile.depend +++ b/bin/expr/Makefile.depend @@ -16,6 +16,4 @@ DIRDEPS = \ .if ${DEP_RELDIR} == ${_DEP_RELDIR} # local dependencies - needed for -jN in clean tree -expr.o: expr.c -expr.po: expr.c .endif diff --git a/bin/rmail/Makefile.depend b/bin/rmail/Makefile.depend index de5f45e..0cb1420 100644 --- a/bin/rmail/Makefile.depend +++ b/bin/rmail/Makefile.depend @@ -16,6 +16,4 @@ DIRDEPS = \ .if ${DEP_RELDIR} == ${_DEP_RELDIR} # local dependencies - needed for -jN in clean tree -rmail.o: sm_os.h -rmail.po: sm_os.h .endif diff --git a/bin/sh/Makefile.depend b/bin/sh/Makefile.depend index 9eb4fba..3d92039 100644 --- a/bin/sh/Makefile.depend +++ b/bin/sh/Makefile.depend @@ -17,98 +17,4 @@ DIRDEPS = \ .if ${DEP_RELDIR} == ${_DEP_RELDIR} # local dependencies - needed for -jN in clean tree -alias.o: builtins.h -alias.po: builtins.h -arith_yylex.o: syntax.h -arith_yylex.po: syntax.h -builtins.o: builtins.c -builtins.o: builtins.h -builtins.po: builtins.c -builtins.po: builtins.h -cd.o: builtins.h -cd.o: nodes.h -cd.po: builtins.h -cd.po: nodes.h -echo.o: builtins.h -echo.po: builtins.h -error.o: nodes.h -error.po: nodes.h -eval.o: builtins.h -eval.o: nodes.h -eval.o: syntax.h -eval.po: builtins.h -eval.po: nodes.h -eval.po: syntax.h -exec.o: builtins.h -exec.o: nodes.h -exec.o: syntax.h -exec.po: builtins.h -exec.po: nodes.h -exec.po: syntax.h -expand.o: builtins.h -expand.o: nodes.h -expand.o: syntax.h -expand.po: builtins.h -expand.po: nodes.h -expand.po: syntax.h -histedit.o: builtins.h -histedit.po: builtins.h -input.o: syntax.h -input.po: syntax.h -jobs.o: builtins.h -jobs.o: nodes.h -jobs.o: syntax.h -jobs.po: builtins.h -jobs.po: nodes.h -jobs.po: syntax.h -kill.o: builtins.h -kill.po: builtins.h -main.o: builtins.h -main.o: nodes.h -main.po: builtins.h -main.po: nodes.h -miscbltin.o: syntax.h -miscbltin.po: syntax.h -mystring.o: syntax.h -mystring.po: syntax.h -nodes.o: nodes.c -nodes.o: nodes.h -nodes.po: nodes.c -nodes.po: nodes.h -options.o: builtins.h -options.o: nodes.h -options.po: builtins.h -options.po: nodes.h -output.o: syntax.h -output.po: syntax.h -parser.o: nodes.h -parser.o: syntax.h -parser.o: token.h -parser.po: nodes.h -parser.po: syntax.h -parser.po: token.h -printf.o: builtins.h -printf.po: builtins.h -redir.o: nodes.h -redir.po: nodes.h -show.o: nodes.h -show.po: nodes.h -syntax.o: syntax.c -syntax.o: syntax.h -syntax.po: syntax.c -syntax.po: syntax.h -test.o: builtins.h -test.po: builtins.h -trap.o: builtins.h -trap.o: nodes.h -trap.o: syntax.h -trap.po: builtins.h -trap.po: nodes.h -trap.po: syntax.h -var.o: builtins.h -var.o: nodes.h -var.o: syntax.h -var.po: builtins.h -var.po: nodes.h -var.po: syntax.h .endif -- cgit v1.1 From 5050f4bc8348f5b3dce257e767153950360d4b3f Mon Sep 17 00:00:00 2001 From: trasz Date: Sun, 28 Feb 2016 10:27:12 +0000 Subject: Add speed limit to dd(1). This is useful for testing RCTL disk io limits (when they actually get committed, that is), and might also come in handy in other situations. Reviewed by: wblock@ (man page) MFC after: 1 month Sponsored by: The FreeBSD Foundation --- bin/dd/args.c | 9 +++++++++ bin/dd/dd.1 | 8 ++++++-- bin/dd/dd.c | 27 +++++++++++++++++++++++++++ bin/dd/extern.h | 2 ++ bin/dd/misc.c | 21 ++++++++++++++++----- 5 files changed, 60 insertions(+), 7 deletions(-) (limited to 'bin') diff --git a/bin/dd/args.c b/bin/dd/args.c index 4607d67..27d4a9a 100644 --- a/bin/dd/args.c +++ b/bin/dd/args.c @@ -66,6 +66,7 @@ static void f_obs(char *); static void f_of(char *); static void f_seek(char *); static void f_skip(char *); +static void f_speed(char *); static void f_status(char *); static uintmax_t get_num(const char *); static off_t get_off_t(const char *); @@ -89,6 +90,7 @@ static const struct arg { { "oseek", f_seek, C_SEEK, C_SEEK }, { "seek", f_seek, C_SEEK, C_SEEK }, { "skip", f_skip, C_SKIP, C_SKIP }, + { "speed", f_speed, 0, 0 }, { "status", f_status, C_STATUS,C_STATUS }, }; @@ -295,6 +297,13 @@ f_skip(char *arg) } static void +f_speed(char *arg) +{ + + speed = get_num(arg); +} + +static void f_status(char *arg) { diff --git a/bin/dd/dd.1 b/bin/dd/dd.1 index 4047cdc..64d1acae 100644 --- a/bin/dd/dd.1 +++ b/bin/dd/dd.1 @@ -32,7 +32,7 @@ .\" @(#)dd.1 8.2 (Berkeley) 1/13/94 .\" $FreeBSD$ .\" -.Dd February 4, 2016 +.Dd February 28, 2016 .Dt DD 1 .Os .Sh NAME @@ -156,6 +156,10 @@ Otherwise, input data is read and discarded. For pipes, the correct number of bytes is read. For all other devices, the correct number of blocks is read without distinguishing between a partial or complete block being read. +.It Cm speed Ns = Ns Ar n +Limit the copying speed to +.Ar n +bytes per second. .It Cm status Ns = Ns Ar value Where .Cm value @@ -325,7 +329,7 @@ appended. .El .El .Pp -Where sizes are specified, a decimal, octal, or hexadecimal number of +Where sizes or speed are specified, a decimal, octal, or hexadecimal number of bytes is expected. If the number ends with a .Dq Li b , diff --git a/bin/dd/dd.c b/bin/dd/dd.c index 4c31a5e..56f8efe 100644 --- a/bin/dd/dd.c +++ b/bin/dd/dd.c @@ -82,6 +82,7 @@ size_t cbsz; /* conversion block size */ uintmax_t files_cnt = 1; /* # of files to copy */ const u_char *ctab; /* conversion table */ char fill_char; /* Character to fill with if defined */ +size_t speed = 0; /* maximum speed, in bytes per second */ volatile sig_atomic_t need_summary; int @@ -276,6 +277,29 @@ getfdtype(IO *io) io->flags |= ISSEEK; } +/* + * Limit the speed by adding a delay before every block read. + * The delay (t_usleep) is equal to the time computed from block + * size and the specified speed limit (t_target) minus the time + * spent on actual read and write operations (t_io). + */ +static void +speed_limit(void) +{ + static double t_prev, t_usleep; + double t_now, t_io, t_target; + + t_now = secs_elapsed(); + t_io = t_now - t_prev - t_usleep; + t_target = (double)in.dbsz / (double)speed; + t_usleep = t_target - t_io; + if (t_usleep > 0) + usleep(t_usleep * 1000000); + else + t_usleep = 0; + t_prev = t_now; +} + static void dd_in(void) { @@ -293,6 +317,9 @@ dd_in(void) break; } + if (speed > 0) + speed_limit(); + /* * Zero the buffer first if sync; if doing block operations, * use spaces. diff --git a/bin/dd/extern.h b/bin/dd/extern.h index 6984f6d..25440ca 100644 --- a/bin/dd/extern.h +++ b/bin/dd/extern.h @@ -42,6 +42,7 @@ void def_close(void); void jcl(char **); void pos_in(void); void pos_out(void); +double secs_elapsed(void); void summary(void); void siginfo_handler(int); void terminate(int); @@ -54,6 +55,7 @@ extern void (*cfunc)(void); extern uintmax_t cpy_cnt; extern size_t cbsz; extern u_int ddflags; +extern size_t speed; extern uintmax_t files_cnt; extern const u_char *ctab; extern const u_char a2e_32V[], a2e_POSIX[]; diff --git a/bin/dd/misc.c b/bin/dd/misc.c index eb1227b..ea0f8d3 100644 --- a/bin/dd/misc.c +++ b/bin/dd/misc.c @@ -54,15 +54,12 @@ __FBSDID("$FreeBSD$"); #include "dd.h" #include "extern.h" -void -summary(void) +double +secs_elapsed(void) { struct timespec end, ts_res; double secs, res; - if (ddflags & C_NOINFO) - return; - if (clock_gettime(CLOCK_MONOTONIC, &end)) err(1, "clock_gettime"); if (clock_getres(CLOCK_MONOTONIC, &ts_res)) @@ -72,6 +69,20 @@ summary(void) res = ts_res.tv_sec + ts_res.tv_nsec * 1e-9; if (secs < res) secs = res; + + return (secs); +} + +void +summary(void) +{ + double secs; + + if (ddflags & C_NOINFO) + return; + + secs = secs_elapsed(); + (void)fprintf(stderr, "%ju+%ju records in\n%ju+%ju records out\n", st.in_full, st.in_part, st.out_full, st.out_part); -- cgit v1.1 From e76eb4255b957aa73f6228dd8d525d1946e3707d Mon Sep 17 00:00:00 2001 From: kib Date: Sun, 28 Feb 2016 17:52:33 +0000 Subject: Implement process-shared locks support for libthr.so.3, without breaking the ABI. Special value is stored in the lock pointer to indicate shared lock, and offline page in the shared memory is allocated to store the actual lock. Reviewed by: vangyzen (previous version) Discussed with: deischen, emaste, jhb, rwatson, Martin Simmons Tested by: pho Sponsored by: The FreeBSD Foundation --- bin/sh/miscbltin.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'bin') diff --git a/bin/sh/miscbltin.c b/bin/sh/miscbltin.c index 4de1276..9dae4cb 100644 --- a/bin/sh/miscbltin.c +++ b/bin/sh/miscbltin.c @@ -414,6 +414,9 @@ static const struct limits limits[] = { #ifdef RLIMIT_KQUEUES { "kqueues", (char *)0, RLIMIT_KQUEUES, 1, 'k' }, #endif +#ifdef RLIMIT_UMTXP + { "umtxp", (char *)0, RLIMIT_UMTXP, 1, 'o' }, +#endif { (char *) 0, (char *)0, 0, 0, '\0' } }; -- cgit v1.1 From 569af7e4d78d05f34d3eac11ef96bdcc463847b5 Mon Sep 17 00:00:00 2001 From: trasz Date: Mon, 29 Feb 2016 17:17:10 +0000 Subject: dump(1) -> dump(8). MFC after: 1 month Sponsored by: The FreeBSD Foundation --- bin/pax/pax.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'bin') diff --git a/bin/pax/pax.1 b/bin/pax/pax.1 index c2e1731..412094f 100644 --- a/bin/pax/pax.1 +++ b/bin/pax/pax.1 @@ -595,7 +595,7 @@ are not understood by however .Xr tar 1 and -.Xr dump 1 +.Xr dump 8 will preserve these. .It Fl s Ar replstr Modify the file or archive member names specified by the -- cgit v1.1