HylaFAX The world's
most advanced open source fax server
|
|
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
Re: [hylafax-users] Multi serial solutions
Michael Hallager wrote:
Andrew Rinaldi wrote:
choose a board that has a "PCI Status Register"...
Sorry, that should have said "PCI Interrupt Status Register". This
register allows the serial driver to examine the status of all board
interrupts without polling each port in tern. This register was a
standard feature of the first multiport serial cards when they were
launched in the 1980's and is invaluable for optimising interrupt
service routine performance.
This is one reason why we can run 128 fax ports simultaneously on a
1.2GHz PIII machine.
Hello Andrew-
I only want to run 4 or 8 ports. Non of the cards I have looked at have this
feature. Is it important at this port-scale?
Also - you say "board interrupts" - the board I'm looking at only uses 1 IRQ.
Kind regards,
Michael.
Hello Michael,
If your multiport serial board does not support a 'interrupt status
register' then the multitude of interrupts that are generated by each
and every port are all routed to a single IRQ. This simplistic
architecture forces the Interrupt Service Routine (ISR) to poll each
port on a multiport board in turn looking for the source of any
interrupt that it receives. This interrupt polling is extremely
inefficient and therefore historically multiport serial boards included
a 'interrupt status register' to optimise the performance of the ISR by
allowing it to read the status of all the ports on the board with
a single read. Unfortunately, the 'interrupt status register' has been
removed from most modern multiport serial boards.
To some extent the Linux serial driver is also a 'moving target' with
some significant new features (and bugs) being introduced during the
last few years. Here are a couple of issues that you may want to
consider when deliberating over your proposed multiport solution;
(1) hardware flow control
The serial driver has a number of problems whereby the hardware flow
control on the serial interface fails during heavy workload. If I
remember the details correctly, this bug is most prevalent during IDE
disk interrupts when heavy modem flow control is in use;
http://lkml.org/lkml/2007/7/26/46
(2) The Interrupt Service Routine (ISR) seems to have a 'race' condition
Some of the reports of modems 'wedging' are, we believe, due to a race
condition in the ISR. Unfortunately, this 'wedging' is so dependant on
Kernel version, motherboard, chipset, and modem type that we have never
been able to characterise the bug. The workaround that we have found is
to use the 'interrupt status register' to read multiple interrupts
from the board in a single read.... we suspect that this simply reduces
the workload on the ISR and makes the race condition so rare that it can
be ignored.
Needless to say, Mainpine implement multiple workarounds for these (and
other) issues.... it might be that our software port reset, interrupt
status register, and firmware watchdogs, will help you deliver a robust
and reliable fax server.
Regards
Andrew Rinaldi
Mainpine Developer Support
USA +1 866 363 6680 | UK +44 1225 807 807
andrew.rinaldi@xxxxxxxxxxxx | www.mainpine.com
____________________ HylaFAX(tm) Users Mailing List _______________________
To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null
*To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*