QNX Neutrino microkernel and process manager (QNX Neutrino)
procnto* [-ad | -ae | -as] [-c] [-F number] [-fe]
[-h] [-mmemmgr_configuration]
[-P priority] [-p] [-v]
- -ad
- Disable alignment fault emulation.
The procnto manager doesn't
attempt to make misaligned memory accesses work; they'll
cause a SIGBUS signal for the offending thread.
- -ae
- Enable alignment fault emulation.
The procnto manager
attempts to make misaligned memory accesses work, although they'll
be slow. This isn't guaranteed to work; offending threads may
still get a SIGBUS signal.
- -as
- Use the system default for alignment faults. This behavior
depends on your platform:
- ARM
- -ad
- MIPS
- -ad
- PowerPC
- -ae
- SH4
- -ae
- x86
- -ae
- -c
- Prevent the adaptive partitioning scheduler from automatically running threads that receive events
from interrupt handlers as critical.
|
The -c option has an effect only if:
- you've installed the adaptive partitioning TDK
- the thread receiving an event from an interrupt handler is running in a
partition configured with a critical budget
The option was added in the
QNX Neutrino Core OS 6.3.2. For more information, see the Adaptive
Partitioning User's
Guide. |
- -F number
- The maximum number of file descriptors that can be open at the same time.
The minimum allowable value is 100.
The default value is 1000, but might be constrained by
the RLIMIT_NOFILE system resource.
|
Sockets, named semaphores, message queues, channel IDs (chids), and
connection IDs (coids) all use file descriptors.
|
To determine the current limit, use the ksh builtin command,
ulimit,
or call
getrlimit()
(see the Library Reference).
- -fe
- Force floating-point emulation. The default is to use
floating-point hardware in the CPU if present, and to emulate it in
software if the CPU has no FPU (see
fpemu.so).
Use this option to simulate a system with
no FPU.
- -h
- Disable CPU halting in idle thread. Some CPU and supporting
chipsets can lock up if the CPU halts when idle; you'll notice the
need for the -h option right away because your system will
lock up after booting.
- -mmemmgr_configuration
- The memmgr_configuration string is a sequence of characters
that enable (or if preceded with a ~
character, disable) memory-manager aspects.
The configuration options are:
- i
- munmap() acts as if UNMAP_INIT_REQUIRED
were specified (the default).
- ~i
- munmap() acts as if UNMAP_INIT_OPTIONAL
were specified. See "Initializing
allocated memory" in the QNX Neutrino
Microkernel chapter of the System Architecture guide.
- l ("el")
- Lock all memory; act as if
mlockall(MCL_CURRENT|MCL_FUTURE) were specified
at the start of every program. For more information, see
mlockall() in the
in the Neutrino Library Reference.
- ~l
- Don't lock all memory (the default.)
- L
- Superlock all memory; act as if ThreadCtl(_NTO_CTL_IO,
0) were specified at the start of every program. This affects
only the locking of memory; programs don't actually get I/O privileges.
- ~L
- Don't superlock all memory (the default.)
- b
- Enable backward compatibility (the default.)
|
See the release note for the current behavior. |
- ~b
- Disable backward compatibility.
|
The -m option was added in the
QNX Neutrino Core OS 6.3.2.
If you specify more than one -m option, procnto
ignores all but the last one. If you enable both l and
L, the L option takes priority. |
- -P priority
- Set the lower end of the range of privileged priorities to the
given priority; the upper end of the range is 255.
Only processes with an effective user ID of 0 (i.e. root)
can use these priorities.
Non-root (and root) processes can use priorities
from 1 through priority - 1.
The default value of priority is 64.
- -p
- Disable kernel preemption. This prevents threads
running in kernel space from being preempted by a higher-priority
thread. This can be useful when debugging a system with a frequent
source of high-priority interrupts.
- -v[v]...
- Be verbose. Specifying more v characters
increases the
verbosity.
If you specify this option, you'll get more useful information
when a process is terminated by a signal.
The procnto system process contains the QNX Neutrino
microkernel, process management, memory management and pathname
management. It's required in all bootable images made using the
mkifs utility.
For more information, see the QNX Neutrino
System Architecture
guide.
There are different versions of procnto for different processors
(see the Board Support Package for your board for specific information):
- procnto-400
- PowerPC 400 series processors.
- procnto-800
- PowerPC 800 series processors.
- procnto-booke
- Power Book E processors.
- procnto-600-smp
- Other supported PowerPC SMP processors, such as the 600 and 700 series.
- procnto-600
- Other supported PowerPC processors, such as the 600 and 700 series.
- procnto-32
- 32-bit MIPS processors.
- procnto-smp
- All other supported SMP processors.
- procnto
- All other supported processors.
|
The SMP versions of procnto are available only in the
Symmetric Multiprocessing Technology Development Kit (TDK). |
There's also an instrumented version of each of the above (e.g.
procnto-600-smp-instr) that you'll use for system analysis.
For self-hosted Neutrino systems, the default microkernel is
procnto-instr.
Starting in 6.3.0, procnto also manages named semaphores, which
mqueue
used to do (mqueue now manages named semaphores only if it
detects that procnto isn't doing so).
Named semaphores
appear in the pathname space under /dev/sem.
The sem_* client functions handle named semaphores;
for more information, see the Neutrino Library Reference.
To disable preemption:
procnto -p
fpemu.so,
mkifs
"Startup programs (startup-*)"
in the Utilities Summary chapter
mlockall(),
mmap(),
munmap(),
munmap_flags(),
sem_close(),
sem_getvalue(),
sem_open(),
sem_post(),
sem_trywait(),
sem_unlink(),
sem_wait()
in the Neutrino Library Reference