PPP2 driver interface_pp.c overhaul

Peter Pregler Peter.Pregler@risc.uni-linz.ac.at
Mon, 30 Aug 1999 21:56:35 +0200 (CEST)


This message is in MIME format
--_=XFMail.1.3.p0.Linux:990830215635:518=_
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit


On 29-Aug-99 Peter Pregler wrote:
> 
> That is true. There is a busy-wait in the kernel-code (the WHILE_OUT macro).
> I
> have a patch that utilizes the scheduler task-queu. Note that
> interrupt-driven
> code is not the solution here. The busy wait is while waiting for data on the
> parallel port and not while waiting for a picture. Unfortunatly my code has
> still some problem if interrupted (I am new to kernel-hacking ;). I will
> debug
> this and than send the patch to the list. This should happen until Tuesday
> this
> week.

Okay, here is the patch as promised. The patch is against the original
cpia-0.2. It is using a timer and not a task queue but who cares. I was not able
to crash my machine anymore. So it might be stable. Use at your own risk and
don't assume it is SMP-safe. Has anyone a good description about programming
kernel-modules that are SMP-safe? That chapter is empty in the kernel-module
programming guide.

As for resource consumption: I had a closer look and the numbers were about 9%
in kernel mode for reading data and about 30% in user-mode decoding. All done
on a PII-350 with linux-2.2.12, size cif, thresholds set to 10, autocompression
resulting in about 4 fps. So there was pretty much data going over the parport.

Greetings, Peter

-------------------------------
Even the thought that a ship was waiting to take him back to Earth
did not wipe out the sense of loss he felt at that moment.
-------------------------------
Email: Peter.Pregler@risc.uni-linz.ac.at
Peter Pregler / RISC, University of Linz, Austria

--_=XFMail.1.3.p0.Linux:990830215635:518=_
Content-Disposition: attachment; filename="cpia-0.2-timer.patch"
Content-Transfer-Encoding: base64
Content-Description: cpia-0.2-timer.patch
Content-Type: application/octet-stream;
 name=cpia-0.2-timer.patch; SizeOnDisk=4382

T25seSBpbiBjcGlhL21vZHVsZTogLmRlcGVuZApkaWZmIC1yIC1jIGNwaWEtMC4yLW9yaWcvbW9k
dWxlL01ha2VmaWxlIGNwaWEvbW9kdWxlL01ha2VmaWxlCioqKiBjcGlhLTAuMi1vcmlnL21vZHVs
ZS9NYWtlZmlsZQlTYXQgTWF5IDE1IDEzOjU2OjM3IDE5OTkKLS0tIGNwaWEvbW9kdWxlL01ha2Vm
aWxlCU1vbiBBdWcgMzAgMjE6MzI6NDMgMTk5OQoqKioqKioqKioqKioqKioKKioqIDMsOSAqKioq
CiAgV0FSTiAgICAgPSAtV2FsbCAtV3N0cmljdC1wcm90b3R5cGVzCiAgT1BUSU1JWkUgPSAtTzIg
LXBpcGUKICBDT0RFU1RZTCA9IC1mb21pdC1mcmFtZS1wb2ludGVyIC1mbm8tc3RyZW5ndGgtcmVk
dWNlCiEgSU5DTFVERVMgPSAtSS4uL2luY2x1ZGUKICBERUZJTkVTICA9IC1EX19LRVJORUxfXyAt
RE1PRFVMRQogIENGTEFHUyAgID0gJChERUJVRykgJChXQVJOKSAkKE9QVElNSVpFKSAkKENPREVT
VFlMKSAkKElOQ0xVREVTKSAkKERFRklORVMpCiAgTElCUyAgICAgPQotLS0gMyw5IC0tLS0KICBX
QVJOICAgICA9IC1XYWxsIC1Xc3RyaWN0LXByb3RvdHlwZXMKICBPUFRJTUlaRSA9IC1PMiAtcGlw
ZQogIENPREVTVFlMID0gLWZvbWl0LWZyYW1lLXBvaW50ZXIgLWZuby1zdHJlbmd0aC1yZWR1Y2UK
ISBJTkNMVURFUyA9IC1JLi4vaW5jbHVkZSAtSS91c3Ivc3JjL2xpbnV4L2luY2x1ZGUKICBERUZJ
TkVTICA9IC1EX19LRVJORUxfXyAtRE1PRFVMRQogIENGTEFHUyAgID0gJChERUJVRykgJChXQVJO
KSAkKE9QVElNSVpFKSAkKENPREVTVFlMKSAkKElOQ0xVREVTKSAkKERFRklORVMpCiAgTElCUyAg
ICAgPQpkaWZmIC1yIC1jIGNwaWEtMC4yLW9yaWcvbW9kdWxlL2NwaWFfZW50cnkuaCBjcGlhL21v
ZHVsZS9jcGlhX2VudHJ5LmgKKioqIGNwaWEtMC4yLW9yaWcvbW9kdWxlL2NwaWFfZW50cnkuaAlT
dW4gTWF5IDE2IDE5OjU5OjU2IDE5OTkKLS0tIGNwaWEvbW9kdWxlL2NwaWFfZW50cnkuaAlNb24g
QXVnIDMwIDIxOjI0OjA5IDE5OTkKKioqKioqKioqKioqKioqCioqKiAxOSwyNCAqKioqCi0tLSAx
OSwyNiAtLS0tCiAgc3RydWN0IHBhcnBvcnQJCQkqcG9ydDsKICBlbnVtIGNvbXN0YXRlcwkJCXN0
YXRlOwogIGVudW0gY2Ftc3RhdGVzCQkJY2Ftc3RhdGU7Cisgc3RydWN0IHdhaXRfcXVldWUgICAg
ICAgICAgICAgICAqcV93YWl0OworIHN0cnVjdCB0aW1lcl9saXN0ICAgICAgICAgICAgICAgcV90
aW1lcjsKICB9OwogIAogICNlbmRpZgpkaWZmIC1yIC1jIGNwaWEtMC4yLW9yaWcvbW9kdWxlL2lu
dGVyZmFjZV9wcC5jIGNwaWEvbW9kdWxlL2ludGVyZmFjZV9wcC5jCioqKiBjcGlhLTAuMi1vcmln
L21vZHVsZS9pbnRlcmZhY2VfcHAuYwlTdW4gTWF5IDE2IDIyOjA0OjM5IDE5OTkKLS0tIGNwaWEv
bW9kdWxlL2ludGVyZmFjZV9wcC5jCU1vbiBBdWcgMzAgMjE6MjU6MDAgMTk5OQoqKioqKioqKioq
KioqKioKKioqIDU2LDYxICoqKioKLS0tIDU2LDYyIC0tLS0KICB7CiAgaWYgKGNhbWVyYVtjYW1u
cl0pCiAgCXsKKyAJZGVsX3RpbWVyKCZjYW1lcmFbY2FtbnJdLT5xX3RpbWVyKTsKICAJa2ZyZWUo
Y2FtZXJhW2NhbW5yXSk7CiAgCWNhbWVyYVtjYW1ucl0gPSBOVUxMOwogIAlyZXR1cm4gMDsKKioq
KioqKioqKioqKioqCioqKiAzMDgsMzEzICoqKioKLS0tIDMwOSwzMTYgLS0tLQogIGNhbWVyYVtj
YW1ucl0tPnBvcnQgPSBwb3J0OwogIGNhbWVyYVtjYW1ucl0tPnN0YXRlID0gQ1BJQV9GT1JXQVJE
OwogIGNhbWVyYVtjYW1ucl0tPmNhbXN0YXRlID0gQ1BJQV9QSEFTRV9pZGxlOworIGNhbWVyYVtj
YW1ucl0tPnFfd2FpdCA9IE5VTEw7CisgaW5pdF90aW1lcigmY2FtZXJhW2NhbW5yXS0+cV90aW1l
cik7CiAgCiAgLyogZGV0ZWN0IHRoZSB0aGluZyAqLwogIApPbmx5IGluIGNwaWEvbW9kdWxlOiBp
bnRlcmZhY2VfcHAubwpkaWZmIC1yIC1jIGNwaWEtMC4yLW9yaWcvbW9kdWxlL2ludGVyZmFjZV9w
cF9sb3cuYyBjcGlhL21vZHVsZS9pbnRlcmZhY2VfcHBfbG93LmMKKioqIGNwaWEtMC4yLW9yaWcv
bW9kdWxlL2ludGVyZmFjZV9wcF9sb3cuYwlUdWUgSnVuIDI5IDA5OjEzOjE0IDE5OTkKLS0tIGNw
aWEvbW9kdWxlL2ludGVyZmFjZV9wcF9sb3cuYwlNb24gQXVnIDMwIDIxOjM0OjAyIDE5OTkKKioq
KioqKioqKioqKioqCioqKiAyNiw0MiAqKioqCiAgCiAgI2RlZmluZSBXSElMRV9PVVRfVElNRU9V
VCAxMAogIAohICNkZWZpbmUgV0hJTEVfT1VUKHRoaXN0aGluZylcCiEge1wKISBpZiAodGhpc3Ro
aW5nKVwKISAJe1wKISAJdW5zaWduZWQgbG9uZyBzdGFydGppZiA9IGppZmZpZXM7XAohIAl3aGls
ZSAoKHRoaXN0aGluZykmJigoamlmZmllcy1zdGFydGppZik8V0hJTEVfT1VUX1RJTUVPVVQpKTtc
CiEgCWlmICghKChqaWZmaWVzLXN0YXJ0amlmKTxXSElMRV9PVVRfVElNRU9VVCkpXAohIAkJe0xP
RygiV2hpbGVvdXRFcnJvciBhdCBsaW5lIHdhaXRlZCAlbGRcbiIsamlmZmllcy1zdGFydGppZik7
XAohIAkJZ290byBXaGlsZW91dEVycm9yO307XAohIAl9O1wKISB9O1wKICAKICBpbnQgbXlfd2Fp
dF9wZXJpcGhlcmFsKHN0cnVjdCBwYXJwb3J0ICpwb3J0LGludCBtYXNrLGludCByZXN1bHQpCiAg
ewotLS0gMjYsNzMgLS0tLQogIAogICNkZWZpbmUgV0hJTEVfT1VUX1RJTUVPVVQgMTAKICAKISB2
b2lkCiEgZG9fbm90aGluZyh1bnNpZ25lZCBsb25nIHB0cikKISB7CiEgc3RydWN0IGNwaWFfZW50
cnkgKmNwaWEgPSAoc3RydWN0IGNwaWFfZW50cnkgKilwdHI7CiEgaWYoICBjcGlhLT5xX3dhaXQg
IT0gTlVMTCApCiEgICAgICAgewohICAgICAgIHdha2VfdXBfaW50ZXJydXB0aWJsZSgmY3BpYS0+
cV93YWl0KTsKISAgICAgICB9CiEgcmV0dXJuOwohIH0KISAKISBpbnQKISB3aGlsZV9vdXQoc3Ry
dWN0IGNwaWFfZW50cnkgKmNwaWEpCiEgewohIHN0cnVjdCBwYXJwb3J0ICpwb3J0ID0gY3BpYS0+
cG9ydDsKISB1bnNpZ25lZCBsb25nIGVuZGppZjsKISBpbnQgaSwgaXNfc2lnPTA7CiEgCiEgaWYo
IEdldEVDUk1hc2tlZChwb3J0LEVDUl9mdWxsKSApIHJldHVybiAxOwohIAohIGNwaWEtPnFfdGlt
ZXIuZnVuY3Rpb249ZG9fbm90aGluZzsKISBjcGlhLT5xX3RpbWVyLmRhdGE9KHVuc2lnbmVkIGxv
bmcpY3BpYTsKISBlbmRqaWYgPSBqaWZmaWVzK1dISUxFX09VVF9USU1FT1VUOwohIGNwaWEtPnFf
dGltZXIuZXhwaXJlcz1lbmRqaWY7CiEgCiEgY3BpYS0+cV93YWl0PU5VTEw7CiEgYWRkX3RpbWVy
KCZjcGlhLT5xX3RpbWVyKTsKISBpbnRlcnJ1cHRpYmxlX3NsZWVwX29uKCZjcGlhLT5xX3dhaXQp
OwohIGZvciAoIGk9MDsgaTxfTlNJR19XT1JEUyAmJiAhaXNfc2lnOyBpKyspIC8qID8/PyAqLwoh
ICAgaXNfc2lnID0gY3VycmVudC0+c2lnbmFsLnNpZ1tpXSAmCiEgICAgIH5jdXJyZW50LT5ibG9j
a2VkLnNpZ1tpXTsKISBpZiAoaXNfc2lnKQohICAgewohICAgcmV0dXJuIDA7CiEgICB9CiEgaWYo
ICFHZXRFQ1JNYXNrZWQocG9ydCxFQ1JfZnVsbCkgKQohICAgICAgIHsKISAgICAgICBMT0coIldo
aWxlb3V0RXJyb3IgYXQgbGluZSB3YWl0ZWQgJWRcbiIsV0hJTEVfT1VUX1RJTUVPVVQpOwohICAg
ICAgIHJldHVybiAwOwohICAgICAgIH0KISByZXR1cm4gMTsKISB9CiAgCiAgaW50IG15X3dhaXRf
cGVyaXBoZXJhbChzdHJ1Y3QgcGFycG9ydCAqcG9ydCxpbnQgbWFzayxpbnQgcmVzdWx0KQogIHsK
KioqKioqKioqKioqKioqCioqKiAzMjcsMzMzICoqKioKICAKICB3aGlsZSgoKChieXRlcy1yZWFk
Ynl0ZXMpL0VDUF9GSUZPX1NJWkUpID4gMCkmJihlbmRzZWVuPDQpKSAvL2F0IGxlYXN0IDEgZnVs
bCBmaWZvIHRvIGRvID8KICAJewohIAlXSElMRV9PVVQoIUdldEVDUk1hc2tlZChwb3J0LEVDUl9m
dWxsKSk7IC8vd2FpdCBmb3IgRklGTyB0byBiZSBmdWxsCiAgCWZvcihqID0gMDtqIDwgRUNQX0ZJ
Rk9fU0laRTtqKysgKQogIAkJewogIAkJKmJ1ZiA9IHBhcnBvcnRfcmVhZF9maWZvKHBvcnQpOwot
LS0gMzU4LDM2NyAtLS0tCiAgCiAgd2hpbGUoKCgoYnl0ZXMtcmVhZGJ5dGVzKS9FQ1BfRklGT19T
SVpFKSA+IDApJiYoZW5kc2Vlbjw0KSkgLy9hdCBsZWFzdCAxIGZ1bGwgZmlmbyB0byBkbyA/CiAg
CXsKISAgICAgICAgIGlmKCB3aGlsZV9vdXQoY3BpYSk9PTAgKQohICAgICAgICAgICAgICAgICB7
CiEgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBXaGlsZW91dEVycm9yOwohICAgICAgICAg
ICAgICAgICB9CiAgCWZvcihqID0gMDtqIDwgRUNQX0ZJRk9fU0laRTtqKysgKQogIAkJewogIAkJ
KmJ1ZiA9IHBhcnBvcnRfcmVhZF9maWZvKHBvcnQpOwpPbmx5IGluIGNwaWEvbW9kdWxlOiBpbnRl
cmZhY2VfcHBfbG93Lm8KT25seSBpbiBjcGlhL21vZHVsZTogbW9kdWxlLm8KT25seSBpbiBjcGlh
L21vZHVsZTogcHBjdXNjcGlhLm8KT25seSBpbiBjcGlhL3NoYXJlZDogcHJvY3Mubwo=

--_=XFMail.1.3.p0.Linux:990830215635:518=_--
End of MIME message
-----------------------------------------------------------------------------
To unsubscribe from this mailinglist, send the line "unsubscribe vision-webcam" in the
body of a message to "majordomo@errors.no".