HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: "Unable to set RT scheduling parameters" Error



On Wed, 23 Jul 1997, Tim Rice wrote:
> 
> HylaFAX v4.0pl1
> UnixWare 2.03 & 2.1.2
> 
> I decided to track down an error in the syslog files.
> ....
> Jul 23 07:30:43 trruw21 FaxGetty[689]: Unable to set RT scheduling
> parameters: Invalid argument
> ....
> 
> I found it was coming from faxd/ModemServer.c++.
> The offending system call was priocntl(2)
> I discovered that UnixWare's version of priocntl(2) has no "RT" class.
> It does have FC (Fixed Priority Class) which acording to the man page
> "This ensures that a runnable fixed priority process is given
> CPU service before any process belonging to any other class."
> That sounds close to a Real Time Class.
> 
> I plan to impliment a patch that looks for sys/fppriocntl.h and sumbstitutes
> the RT class for FC class.
> 
> What I need to know is:
> 	a) Has anyone allready done this work?

It turns out Tony Lill had done the work allready.
I stripped out the neccessary stuff from a largre diff file Tony sent me,
applied it, and tested it. It works great. Thanks Tony.
Faxes that had trouble befor now work.

I've attached the patch.

> 
> 	b) Are there any platforms that have a priocntl(2)
> 	   with both RT and FC (and of course TS) classes?
> 	
> 	c) Are there any platforms with the RT class that
> 	   also have sys/fppriocntl.h?
> 
> 
> Thanks,
> 
> --
> Tim Rice			Multitalents	(707) 887-1469 (voice)
> tim@trr.metro.net
> 
> 

--
Tim Rice			Multitalents	(707) 887-1469 (voice)
tim@trr.metro.net

*** configure.old	Thu Jul 31 20:28:11 1997
--- configure	Thu Jul 31 20:22:24 1997
***************
*** 2692,2697 ****
--- 2692,2701 ----
  	Note "... configure use of SVR4 realtime process control interface"
  	echo '#define HAS_PRIOCNTL 1'
      }
+     CheckForDefine FP_NOCHANGE sys/priocntl.h sys/fppriocntl.h && {
+ 	Note "... called FP instead of RT"
+ 	echo '#define HAS_FPPRIOCNTL 1'
+     }
      CheckForDefine NDPRI sys/schedctl.h && {
  	Note "... configure use of IRIX realtime process control interface"
  	echo '#define HAS_SCHEDCTL 1'
*** faxd/ModemServer.c++.old	Tue Nov 26 12:00:00 1996
--- faxd/ModemServer.c++	Thu Jul 31 20:22:24 1997
***************
*** 257,263 ****
--- 257,267 ----
  #elif HAS_PRIOCNTL
  extern "C" {
  #include <sys/priocntl.h>
+ #ifdef HAS_FPPRIOCNTL
+ #include <sys/fppriocntl.h>
+ #else
  #include <sys/rtpriocntl.h>
+ #endif
  #include <sys/tspriocntl.h>
  }
  static struct SchedInfo {
***************
*** 269,277 ****
--- 273,287 ----
      { "TS", { TS_NOCHANGE, TS_NOCHANGE } },		// MODEMWAIT
      { "TS", { TS_NOCHANGE, TS_NOCHANGE } },		// LOCKWAIT
      { "TS", { TS_NOCHANGE, TS_NOCHANGE } },		// GETTYWAIT
+ #ifdef HAS_FPPRIOCNTL	// if still fails, set prio to 0
+     { "FP", { FP_NOCHANGE, FP_NOCHANGE, FP_TQDEF } },// SENDING
+     { "FP", { FP_NOCHANGE, FP_NOCHANGE, FP_TQDEF } },// ANSWERING
+     { "FP", { FP_NOCHANGE, FP_NOCHANGE, FP_TQDEF } },// RECEIVING
+ #else
      { "RT", { RT_NOCHANGE, RT_NOCHANGE, RT_NOCHANGE } },// SENDING
      { "RT", { RT_NOCHANGE, RT_NOCHANGE, RT_NOCHANGE } },// ANSWERING
      { "RT", { RT_NOCHANGE, RT_NOCHANGE, RT_NOCHANGE } },// RECEIVING
+ #endif
      { "TS", { TS_NOCHANGE, TS_NOCHANGE } },		// LISTENING
  };
  #elif HAS_RTPRIO
***************
*** 318,328 ****
--- 328,346 ----
  	if (priocntl((idtype_t)0, 0, PC_GETCID, (caddr_t)&pcinfo) >= 0) {
  	    pcparms_t pcparms;
  	    pcparms.pc_cid = pcinfo.pc_cid;
+ #ifdef HAS_FPPRIOCNTL
+ 	    if (streq(si.clname, "FP")) {
+ 		fpparms_t* fpp = (fpparms_t*) pcparms.pc_clparms;
+ 		fpp->fp_pri	= si.params[0];
+ 		fpp->fp_tqsecs	= (ulong) si.params[1];
+ 		fpp->fp_tqnsecs	= si.params[2];
+ #else
  	    if (streq(si.clname, "RT")) {
  		rtparms_t* rtp = (rtparms_t*) pcparms.pc_clparms;
  		rtp->rt_pri	= si.params[0];
  		rtp->rt_tqsecs	= (ulong) si.params[1];
  		rtp->rt_tqnsecs	= si.params[2];
+ #endif
  	    } else {
  		tsparms_t* tsp = (tsparms_t*) pcparms.pc_clparms;
  		tsp->ts_uprilim	= si.params[0];
X-Sender: mario@laus.dbk.laus.hr
X-Mailer: QUALCOMM Windows Eudora Light Version 3.0.2 (32)
Date: Tue, 23 Sep 1997 08:12:08 +0300
To: jawildman@cfanet.com
From: Mario Misic <mario@laus.hr>
Subject: Re: flexfax: Sending fax with different permission
Cc: flexfax@sgi.com
Sender: owner-flexfax@celestial.com

At 10:42 1997.09.22 +0000, Jim Wildman wrote:
>In your modem config file
>
>RecvFileMode:           0640
>

Yes I know that I can setup permission for received faxes, but I want to
change permission on fax wich I am sending.

When I send fax, there hylafax make postscript file in directory
/var/spool/fax/docq/ with permission 0600 but I want permission 0644.
 

>> Date:          Mon, 22 Sep 1997 15:53:59 +0300
>> To:            flexfax@sgi.com
>> From:          Mario Misic <mario@laus.hr>
>> Subject:       flexfax: Sending fax with different permission
>
>> 
>> Hi! 
>> 
>> 
>> Is it possible to configure hylafax to send fax with different permission
>> than 600!
>> 
>> I want to give everyone file permissions 644 in directory
>> /var/spool/fax/docq/.





~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ Mario Misic              | e-mail: mario@laus.hr       ~
~ CC Computer Consulting   | Tel:    +385 (20) 411-136   ~
~ Janjevska 15             |         +385 (1) 6552-330   ~
~ 20 000 Dubrovnik         | Fax:    +385 (20) 411-136   ~
~ Hrvatska (Croatia)       | URL:    http://www.laus.hr  ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>>>>>>>> Every dog will have his day ! <<<<<<<<<<<<<<
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




Project hosted by iFAX Solutions