[patch] QNXsched-1.13 for Linux 2.0

Adam McKee (amckee@poboxes.com)
Mon, 29 Sep 1997 21:07:18 -0600 (CST)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--12583424-2003745207-875588838=:558
Content-Type: TEXT/PLAIN; charset=US-ASCII

The only real change from 1.12 is that I took out the condition that a
process can't be promoted back to its original run-queue because of
starvation -- this was causing unfair scheduling in some circumstances.

If someone would like to port to Linux 2.1 (v1.06 was ported already --
you can start with that), I'd be happy to put the 2.1 patch into the
distribution. E-mail me if you're interested in doing this. It's about 2
hours work if you know what you're doing. I run 2.0 right now so I'm not
very motivated to do this port.

-- Adam

--12583424-2003745207-875588838=:558
Content-Type: APPLICATION/octet-stream; name="QNXsched-1.13.tar.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.970929210718.558B@titan.acua.org>
Content-Description:

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
T3NbjyaGRa0sF+V5ynq+eLGy8pJeGyyAK2nL6FEDmMXy+5fNSThSZ03ikz3T
HRmSsLV68DgKsxLD0TBfRaFbKaD9mNR8ETzhB334Y8gzxz/LXRCi+5EGQToA
TfBFMgQypgtumpg9gM0HYGSuMRB34+w4PfVLqVMyT0FgWDSf6lzJBMl1rrug
CmvVRw0slXhJREmPVqhOJVJCZ0XFXN1J3wOzOxmaPhrdXIIyb0ppxeZ8GW5d
2bd+qG9Z8QQyf4yu0JfFiNkhkbwa05Nh2mB3LznBeyBYoWisxJWVnIHlAgd9
47dkOQxDB3njd71pHK43jWrgmn1fIxFqULrhS72KnGyhtl96c74SquTAUL2h
oXrE7YVYOEskO5hhjGuH9qIJTzwMdtX9++R2qeQn9dfrh/orFOk29Qdym9IL
sNqpDFVEovtoItHcu8KbZmczqbRZZZKlHDPLl5Qr87IdSVd2+1qTscJdO5WY
lImckke5kJ19Xshue5CkBSrloip95tgPyjrG4wNNKPf3aVEFII66DlJ90XoS
n6AjaatDEEXdbldS19n/s9R1/nLiBv22JG4vSw3zLgOU+sat+HYSCYedNDlI
bvCp5Rm9g8Y/b2VawIQk21meIaQ1rrVw+uE20sW5LgXpF/MgjOlunX2PvgaF
jq6drZaU83ZhEaXlyjl6meSinxpK73JQou24FLTTLXIbrlbRPdzZ6IsoMeCy
iLA9S79dIKKWurzWk/za2035hdn3P4Qsm9CbHAG9V+LGMR372teuQ43XQruX
IIckeXrIlTI0A3SBfhFMRSvLJB64ziwPON3mWgAqFfharaCS6RfuYfwzjvt1
qN8Egq85WZWr7HeafVrl3p663ShvAl3Na5cnp6Px5LvXTXlhH5uk00m6OWCR
/WwN8gAnp6ej70+OLyWMu1iIqUuJO4M1kuqoK6ujbrE66jYa9YLfcvW7PLLJ
SNV/zd16aqRXt7Mz+uw4Hm7pvWh4Zi+cGyGeL4Or4CMKgBMsjtSF7k8l73Pc
R3/gbQ4a9Jn3aXeb3R406GMnfQNs3XtaxgthaS3AuEin+1OjQzmnRNnlJYEj
VCgMBuVDUkEo2gcuKcpXZdEHHYAtz/Ql8ql7K5WtFqJZn6oTzCtPLKJ64e1Z
qqFgyp6kv+pRTm2ZL47mQLWkq1sA7rZzr+Lqb+Ea78o2MJCgMKLwFm2W6SZE
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
6h8892hRPxfrfXBZ44hOUg7B7I5w/ZmMPADcZcaB0cEXRAZgEUHUjJ2SlItn
DAO38KjHX+i4qALyHC6Egu1KneaF9cdhniVwzhiqJLOZRBob4PXavPbksv+B
QIgTmY0cFWlg2NYeZ0bfhxTqP5JMM/+dxEm2BYkCXYiXU/vGtbUr+yxdgJXQ
1nBe3phzBBOPoD0fZ7fpPXcon+lUyQnb6iKaQu3nGkehWRN8KVhWlxca++qR
bGXdtCgnymd3LPMB5nM8GFABckOMPKLSkFdmmS5zUYd4UoQAR9YG7+Aodatg
FbDemNH6A5bSnSKw0ANzcXyYszp3DA5KMuOIJ0jkQHQorEl4qVboOKO0XZke
sfpfta+yyDJcKLQmmuZ1fJMUjOMVGtG/hx/iRI4+Lw731UueSukUIr5haNxJ
BNMHn64YdR6y0SQF1i+f07Y3p8iX98RZeaQq8gjIY9IphibjNU1aSy/xr4h6
CBXbGytU2wkc+DJmR7hJlXwW0LNzWp5FgCVHsRlaWABm/+Lk+MXby3O+DHEq
hyREjLib8WtKjdDwNoJF7S5KuBzc1KWAh77ZWSUsIM5ngT6Nwe7k7tVh9lRf
MylsOSvei2y4RGZKcyY0ZDce9bVMwkWyCowHWrjkFBk0qTMg5OtwPhfx0pV0
bUBCPtppiLNb32dpNOrihP8Xvdi6fP+L5NYiy3t/9EXPGz6fu/85eFR9//Pg
4ePH3+5/fY2PCat4d/Di7OT8+nVgLtTbB/bJm9bHdqPRor+cTwV3921lKXrT
Qp22e05ysfWxs2pLq6eqRabvfyh838d3r2L40av4fL1ioF/y8D+9Xv/XPmX6
/y/9Ask/d4y73//e7z96uHb/89Hu4Bv9f43P3/StMfV0VKzmUW/6PHCPJFCi
8qwYx9naoyQeVp6t8gdImlJ+ukxjqlx61sSwJHKa3iMjhppBUBvjZgTHhpg2
U3xX1FVtF/VBV7VVTahVbeGd8WyfngQB3tgYjUJ4ko+gK24V5vYe6cTD0Zb2
F/SmCFPS0SEurI90X1mJ6+vTFvJ9Xhf0lf4lyxFR4pxfe23Ztq9duqe1Lid3
dfl7OyP4nLq51iFXpK9y5B/8cYA3j4EWgfQ7mhJ1b8tg1ynZCO93ke7lN9U0
NwmaHdXEhQ38yzcIrvkGQRNxhwEylTSEK+oB7BRIGx+SdY+h8JONn3lxbRPV
dfsdZ2PNS4nqqkUbc5F1B+WKG3KPVfuz2caqBX6oNZX5z2rrp9l0OZcAYp4k
kk1z/oVwMRl19OJu0w9+f59QHAgPdCHLhX+ewNjkxD3UJwwbpDKxP55yZ5JS
ET29l+dX73euEOm+1d1qP1FtTfXI/ONVun//6n3/SqjQvFIkNnXZ3bM139ov
70tYZHGr3AcNYBJw23aFaee27Qtb3uiWG3f1C/vJdT8bNv0Le5npXixOfGG7
RLfzUeYLmy7LTX/PqKluahDv4uzysFTtU4D/AsnwoDHo+TONQrLvnLzpptX8
JVjmZC/vK+1Hed+dFzd5srxS75ECHH96vd7V1S/pLwbpKzXTK3hpZrAX39MI
/Mdv0p0rtX4g6fXHes4ze2mpXNKnEjCe8tMBPfUuMpmRQFfe3eTyqZapdKOY
ztxRocMXd2ZoKudKeQKvXLWu8xk26YsOl0yLRNXd9mnhRmPb1FmiTvW4olIn
BeH7RwU6z5ZS3vvHNFrotPsV3qKZB1KsxPk4nsRFldW021avAHI8w83duc6V
pkxji5ltHVTaEng6gOv66NWxre1ERkft2KfRx2j0YV4ausPsTN1X8ltXtRk7
fIhqSahmvH67QipukT6JRFN3SzSflVc/WpJCp9Ffs2XRwW1YDFojxbkRvkkb
/kZNWCbYzmh262LdZDL3Eo9fc56VHUvpfAm31VxvW8YPwQ7lQWwTyV5zRhHA
78PAYMpqfm+At6Cg7l1AcIMNAJjpY3zd7xOPm127HIfdfjvwFlzauCpP/EZG
RPnNzEh+TlS/st/BBkmF7gbV7jZKtc0d+UPVCrNauDeIvU2d+INoWVfbrZWD
rqLf1Im72ta+NCxVr+ljEwS+WCxVZ0wg00CfMHiphZ45A4ITFyjJTq4xqFcC
ugZYSXrOn7VGklW7BjpknTIoXgs7fDY1JR21DlfbEIC88WAj+HWQfBb8ujnf
DT5vH3xTNSXr4FNfVrx4rIha3bWzNV1bSve42b1nHoVzIm+ZKLL4zuat7x3r
/N72eGcuXzdtn6flFb5a5t6ua821athcldHlNdzWZ3ee/PnabP4rMXPdg5Wa
Tu+ksfbVd/rii4nlls93S9X6Lm9bnc9qUftSOsttETNT4W9U+N3YldC+f/BK
/EbC0dxotoCx0EbSVwuAnvv1Bbo3FDSddeirBOwl8B9YHaG2umeL25pX9VUN
JRqhdXeteulzd5s6UXJ3C1nhu+uIA+jzVZjhfEk15kGf/gLvd9n/q31xf/IY
nzv/2Rs8rPp/9x598/9+lY85/7n45+mhf/xjfldcuhpBngcBvqGhdXzCGdRo
DFdF9GS9kDhjo4FEHzVlkj6L/jTGUuNvSwbpp4O354fmBxwBtmmUkrX4m1To
cJH61Pgxy5IohJA11dZMmNb2i2w2/4kUCk5Wr7bn/Y7S35Cq8Nsh07fP/7PP
vwGI0pAJAKAAAA==
--12583424-2003745207-875588838=:558--