Home | History | Annotate | Download | only in ddb
History log of /src/sys/ddb/db_interface.h
RevisionDateAuthorComments
 1.44  21-Nov-2023  riastradh ddb: New db_stack_trace_print_ra.

Takes an optional extra argument for the return address so that the
stack parser has a chance to use instruction-dependent interpretation
of the frame to find parent frames.

Implemented only on Alpha for now, which needs it. Other
architectures just ignore the extra argument.

PR port-alpha/57716

XXX pullup-10
XXX pullup-9
XXX pullup-8
 1.43  02-Nov-2023  martin Back out the following revisions on behalf of core:

sys/sys/lwp.h: revision 1.228
sys/sys/pipe.h: revision 1.40
sys/kern/uipc_socket.c: revision 1.306
sys/kern/kern_sleepq.c: revision 1.84
sys/rump/librump/rumpkern/locks_up.c: revision 1.13
sys/kern/sys_pipe.c: revision 1.165
usr.bin/fstat/fstat.c: revision 1.119
sys/rump/librump/rumpkern/locks.c: revision 1.87
sys/ddb/db_xxx.c: revision 1.78
sys/ddb/db_command.c: revision 1.187
sys/sys/condvar.h: revision 1.18
sys/ddb/db_interface.h: revision 1.42
sys/sys/socketvar.h: revision 1.166
sys/kern/uipc_syscalls.c: revision 1.209
sys/kern/kern_condvar.c: revision 1.60

Add cv_fdrestart() [...]
Use cv_fdrestart() to implement fo_restart.
Simplify/streamline pipes a little bit [...]

This changes have caused regressions and need to be debugged.
The cv_fdrestart() addition needs more discussion.
 1.42  13-Oct-2023  ad Simplify/streamline pipes a little bit:

- Allocate only one struct pipe not two (no need to be bidirectional here).
- Then use f_flag (FREAD/FWRITE) to figure out what to do in the fileops.
- Never wake the other side or acquire long-term (I/O) lock unless needed.
- Whenever possible, defer wakeups until after locks have been released.
- Do some things locklessly in pipe_ioctl() and pipe_poll().

Some notable results:

- -30% latency on a 486DX2/66 doing 1 byte ping-pong within a single process.
- 2.5x less lock contention during "make cleandir" of src on a 48 CPU machine.
- 1.5x bandwith with 1kB messages on the same 48 CPU machine (8kB: same b/w).
 1.41  07-Oct-2023  ad Add some simple DDB show commands: condvar, selinfo, sleepq
 1.40  18-Apr-2021  mrg don't provide db_lstacktrace() for crash (yet?).
 1.39  18-Apr-2021  mrg db_lstacktrace() can't use db_stacktrace_print and log() directly.

log() takes a 'int level' first argument, that must be supplied.
add an inline wrapper that calls vlog() with LOG_INFO, and the
supplied va_list.

(not noticed because this macro is not used anywhere in src but
i have a use in some uncommited code, that now failed to compile.)
 1.38  10-Feb-2021  simonb Allow for MD code to use a different function than db_stack_trace_print()
to be used with db_stacktrace() and friends by pre-defining the
db_stacktrace_print macro.
 1.37  02-Jun-2019  mrg branches: 1.37.10;
add two db_stack_print_trace frontends that emit to the system log
or the user's terminal.

kind of wrong to be called db_*() when they'll typically be used
outside of ddb itself, but db_stacktrace() itself is no different.
fix this by making the stack trace support separate from ddb?
 1.36  04-Mar-2018  mlelstv branches: 1.36.4;
Add command to print device list.
 1.35  27-Oct-2017  joerg Revert printf return value change.
 1.34  27-Oct-2017  utkarsh009 [syzkaller] Cast all the printf's to (void *)
> as a result of new printf(9) declaration.
 1.33  04-Jan-2017  christos add a simple stacktrace macro
 1.32  13-Apr-2016  ozaki-r branches: 1.32.2;
ddb: rename show arptab to show routes

show arptab command of ddb is now inappropriate because it actually dumps
routes but arp entries aren't routes anymore. So rename it to show routes
and move the code from if_arp.c to route.c.

ok christos@
 1.31  06-Jan-2013  christos branches: 1.31.14;
remove previous, dmesg just works.
 1.30  06-Jan-2013  christos Add "show dmesg" that prints the contents of the message buffer.
 1.29  05-Jan-2013  christos Add "show panic" that shows the current panic string. two ports had it, and
it could be easily made MI.
 1.28  10-Feb-2012  christos branches: 1.28.6;
add __printflike where needed
 1.27  26-May-2011  joerg branches: 1.27.4; 1.27.8;
Introduce DDB_EXPR_FMT and replace the logic around DB_EXPR_T_IS_QUAD.
 1.26  10-Apr-2011  christos Add:
usage: show proc [/a] [/p] address|pid
/a == argument is an address of any lwp
/p == argument is a pid [default]
From: Vladimir Kirillov proger at wilab dot org dot ua
 1.25  18-Feb-2009  yamt branches: 1.25.4; 1.25.6;
- fix vmem unittest. rename VMEM_DEBUG so that it won't be abused again.
- reimplement vmem sanity checks with less code duplication.
- reimplement ddb vmem-related commands in a more consistent ways.
remove automatic whatis.
 1.24  25-Nov-2008  ad branches: 1.24.4;
Add some basic DDB stuff for modules.
 1.23  10-Jul-2008  blymn branches: 1.23.2;
Add a show files command that prints the vnodes associated with a
given struct proc and, if LOCKDEBUG is built in, the lock status of
the uvmobject.
 1.22  28-Apr-2008  martin branches: 1.22.2; 1.22.4; 1.22.6;
Remove clause 3 and 4 from TNF licenses
 1.21  07-Sep-2007  rmind branches: 1.21.20; 1.21.22; 1.21.24;
Implementation of POSIX message queues.

Reviewed by: <ad>, <tech-kern>
 1.20  30-Apr-2007  rmind branches: 1.20.2; 1.20.6; 1.20.8;
Import of POSIX Asynchronous I/O.
Seems to be quite stable. Some work still left to do.

Please note, that syscalls are not yet MP-safe, because
of the file and vnode subsystems.

Reviewed by: <tech-kern>, <ad>
 1.19  22-Feb-2007  matt branches: 1.19.4; 1.19.6;
Fix lossage from boolean_t -> bool and updated x86 bus_dma.
 1.18  21-Feb-2007  thorpej Replace the Mach-derived boolean_t type with the C99 bool type. A
future commit will replace use of TRUE and FALSE with true and false.
 1.17  21-Jan-2006  uwe branches: 1.17.24;
Add CONSTCOND to DB_EXPR_T_IS_QUAD.
 1.16  01-Dec-2005  yamt branches: 1.16.2;
add "show all pools" command for ddb.
 1.15  01-Jun-2005  drochner branches: 1.15.2;
more constification fallout
 1.14  29-May-2005  christos Add lots of const.
 1.13  29-Apr-2005  yamt move decl of db_machine_command_table from db_interface.h to db_command.c
to avoid an array of incomplete type. found by gcc4.
 1.12  20-Sep-2003  thorpej branches: 1.12.8;
Add a "show sched_qs" command to dump the run queues. Format is:
1 pid.lid (p_comm)
pid.lid (p_comm)
...

If a queue has procs, but no sched_whichqs bit, it shows:
!1 pid.lid (p_comm)
 1.11  22-May-2003  briggs branches: 1.11.2;
Somehow overlooked in earlier commits: prototype db_kgdb_cmd().
 1.10  17-May-2003  scw On some platforms, sizeof(db_expr_t) > sizeof(long), so add a method
to select the right format string (at compile time) when displaying
variables of type db_expr_t.

This fixes a problem where ddb(4) would only display the low 32-bits
of registers for an ILP32 kernel on SH5, even though registers
(and db_expr_t) are always 64-bits wide.
 1.9  15-Feb-2002  simonb ANSIfy, KNF.
Make some variables and functions static when not used outside of a module.
Make variables in headers extern.
Delete the unused db_find_watchpoint() function.
 1.8  09-Nov-2001  thorpej Remove unneeded declarations of the db_machine_init() function. The
ARM ports are the only ones that actually have one, and it is about
to change.
 1.7  31-Jul-2001  atatat branches: 1.7.4;
Add an easy way to dump the message buffer from ddb.
 1.6  22-Jan-2001  jdolecek branches: 1.6.2; 1.6.4;
Require the machine-dependant DDB commands to be in db_machine_command_table[]
and link it directly to db_command_table[] so that it's not necessary
to do this at runtime. Make db_machine_command_table[] const on all ports.
g/c now unneded stuff, like db_machine_commands_install(), db_machine_init()

Patch written by enami.
 1.5  26-May-2000  jhawk Rename the machine-specific stack trace printing functions
from db_stack_trace_cmd() to db_stack_trace_print(),
and add an additional argument, a function pointer for an
output routine (i.e. printf() or db_printf()).

Add db_stack_trace_cmd() in db_command.[ch], calling
db_stack_trace_print() with db_printf() as the printer.

Move count==-1 special handling from db_stack_trace_print() [nee
db_stack_trace_cmd()] to db_stack_trace_cmd() [nascent here].

Again, I'm unable to test compilation on all affected platforms,
so advance apologies for potential brokenness.
 1.4  20-May-2000  jhawk Install "show arptab" (db_show_arptab) in the ddb command tree.
Move prototype from netinet/if_inarp.h to ddb/db_interface.h.
Change function to have standard ddb parameters (though they're
ignored).
 1.3  05-Sep-1998  christos branches: 1.3.12;
Assign copyright to TNF.
 1.2  07-May-1997  gwr Add db_kill_proc().
 1.1  05-Feb-1996  christos DDB prototype changes.
 1.3.12.2  11-Feb-2001  bouyer Sync with HEAD.
 1.3.12.1  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
 1.6.4.3  16-Mar-2002  jdolecek Catch up with -current.
 1.6.4.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.6.4.1  03-Aug-2001  lukem update to -current
 1.6.2.3  28-Feb-2002  nathanw Catch up to -current.
 1.6.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.6.2.1  24-Aug-2001  nathanw Catch up with -current.
 1.7.4.1  12-Nov-2001  thorpej Sync the thorpej-mips-cache branch with -current.
 1.11.2.5  11-Dec-2005  christos Sync with head.
 1.11.2.4  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.11.2.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.11.2.2  18-Sep-2004  skrll Sync with HEAD.
 1.11.2.1  03-Aug-2004  skrll Sync with HEAD
 1.12.8.1  29-Apr-2005  kent sync with -current
 1.15.2.4  27-Oct-2007  yamt sync with head.
 1.15.2.3  03-Sep-2007  yamt sync with head.
 1.15.2.2  26-Feb-2007  yamt sync with head.
 1.15.2.1  21-Jun-2006  yamt sync with head.
 1.16.2.1  01-Feb-2006  yamt sync with head.
 1.17.24.2  07-May-2007  yamt sync with head.
 1.17.24.1  27-Feb-2007  yamt - sync with head.
- move sched_changepri back to kern_synch.c as it doesn't know PPQ anymore.
 1.19.6.1  11-Jul-2007  mjf Sync with head.
 1.19.4.2  09-Oct-2007  ad Sync with head.
 1.19.4.1  08-Jun-2007  ad Sync with head.
 1.20.8.1  06-Nov-2007  matt sync with HEAD
 1.20.6.1  02-Oct-2007  joerg Sync with HEAD.
 1.20.2.1  10-Sep-2007  skrll Sync with HEAD.
 1.21.24.2  04-May-2009  yamt sync with head.
 1.21.24.1  16-May-2008  yamt sync with head.
 1.21.22.1  18-May-2008  yamt sync with head.
 1.21.20.3  17-Jan-2009  mjf Sync with HEAD.
 1.21.20.2  28-Sep-2008  mjf Sync with HEAD.
 1.21.20.1  02-Jun-2008  mjf Sync with HEAD.
 1.22.6.2  13-Dec-2008  haad Update haad-dm branch to haad-dm-base2.
 1.22.6.1  19-Oct-2008  haad Sync with HEAD.
 1.22.4.1  18-Jul-2008  simonb Sync with head.
 1.22.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.23.2.2  03-Mar-2009  skrll Sync with HEAD.
 1.23.2.1  19-Jan-2009  skrll Sync with HEAD.
 1.24.4.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.25.6.1  06-Jun-2011  jruoho Sync with HEAD.
 1.25.4.2  31-May-2011  rmind sync with head
 1.25.4.1  21-Apr-2011  rmind sync with head
 1.27.8.1  18-Feb-2012  mrg merge to -current.
 1.27.4.2  23-Jan-2013  yamt sync with head
 1.27.4.1  17-Apr-2012  yamt sync with head
 1.28.6.2  03-Dec-2017  jdolecek update from HEAD
 1.28.6.1  25-Feb-2013  tls resync with head
 1.31.14.2  05-Feb-2017  skrll Sync with HEAD
 1.31.14.1  22-Apr-2016  skrll Sync with HEAD
 1.32.2.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.36.4.1  10-Jun-2019  christos Sync with HEAD
 1.37.10.1  03-Apr-2021  thorpej Sync with HEAD.

RSS XML Feed