| << Previous Tip | > Tips Table < | Next Tip >> |
Upgrading Low Priority |
|
Some older NLMs which were designed using NetWare v3 techniques rely
upon ThreadSwitch() to reschedule their operation. This function places
the thread at the end of the Run Queue behind other scheduled threads.
While it provides the opportunity for other threads on the Run Queue
to execute at least once, all threads are treated similarly with
respect to processing priority.
Novell introduced a Low Priority Queue and a Delay List queue for
threads in NetWare v4. Threads placed on these new queues only run
when Run Queue activity is at a minimum or after a defined number of
Run Queue thread switches have occurred. Compression, data migration,
and some other internal NetWare functions use these new queues to
minimize their load on the Server. However, NLM threads which
continuously reschedule their operation through ThreadSwitch()
limit the opportunity for the Low Priority Queue and Delay List
queue threads to execute. The result is that some internal NetWare
operations are hampered in their ability to schedule processing
time slices.
In such cases, NetWare v4 will display the following alert message on the Server console:
The best solution for this situation is to identify the offending
NLM then get an upgraded version which is designed for NetWare v4
and makes use of the ThreadSwitchWithDelay() function. This
function, added to CLIB beginning with v3.11 rev D, insures that
a minimum number of thread switches occur (default = 50) before
the delayed thread is returned to the Run Queue.
An interim alternative is to append the following CLIB option to the end of the command line when loading the offending NLM:
Example: load [nlm_name] [standard_options] (CLIB_OPT)/Y
Note: This option is format and case sensitive so it must be used exactly as shown.
Surprisingly, there are several, widely used commercial NLM products
which have this design flaw that will cause the Upgrade Low Priority
Threads console alert to appear. Even some early NLMs released by
Novell supporting NetWare v4 can generate this alert. Needless to
say, avanti's products are not among those which will.
Should you encounter this console alert, check with the developers
of any third party NLMs which you may have installed to determine
if the problem is known to them and if a later release is available.
Alternately, try adding the (CLIB_OPT)/Y option to the NLM load
command for all third party NLMs since it will not adversely affect
the NLM if not needed.
|
| << Previous Tip | > Tips Table < | Next Tip >> |