summaryrefslogtreecommitdiff
path: root/sys/src/9/port/qio.c
AgeCommit message (Collapse)Author
2019-03-03qio: handle common case in trimblock()cinap_lenrek
2016-11-12kernel/qio: make readblist() offset of type ulong as the restcinap_lenrek
2016-11-12kernel/qio: get rid of unused qcopycnt debug variablecinap_lenrek
2016-11-09kernel/qio: implement concatblock() with pullupblock()cinap_lenrek
2016-11-08kernel/qio: maintain Block.next pointer in padblock()cinap_lenrek
2016-11-08kernel/qio: fix comments, fix qiwrite() on close queue, remove debug ↵cinap_lenrek
setmalloctag() call in qwrite()
2016-11-07kernel/qio: big cleanup of qio functionscinap_lenrek
remove bl2mem(), it is broken. a fault while copying to memory yields a partially freed block list. it can be simply replaced by readblist() and freeblist(), which we also use for qcopy() now. remove mem2bl(), and handle putting back remainer from a short read internally (splitblock()) avoiding the releasing and re- acquiering of the ilock. always attempt to free blocks outside of the ilock. have qaddlist() return the number of bytes enqueued, which avoids walking the block list twice.
2016-11-05kernel: avoid padblock copying for devtls/devssl/esp, cleanup debuggingcinap_lenrek
to avoid copying in padblock() when adding cryptographics macs to a block in devtls/devssl/esp we reserve 16 extra bytes to the allocation. remove qio ixsummary() function and add acid function qiostats() to /sys/lib/acid/kernel simplify iallocb(), remove iallocsummary() statitics.
2015-08-04kernel: remove unused qstate() functioncinap_lenrek
2015-07-26kernel: pipelined read ahead for the mount cachecinap_lenrek
this changes devmnt adding mntrahread() function and some helpers for it to do pipelined sequential read ahead for the mount cache. basically, cread() calls mntrahread() with Mntrah structure and it figures out if we where reading sequentially and if thats the case issues reads of c->iounit size in advance. the read ahead state (Mntrah) is kept in the mount cache so we can handle (read ahead) cache invalidation in the presence of writes.
2014-11-13kernel: make use of nil vs 0 consistent in qio.c (sorry)cinap_lenrek
2014-06-08kernel: remove Block refcounting (thanks erik)cinap_lenrek
2014-04-29kernel: stop queue bloat before allocating blockscinap_lenrek
2012-10-11kernel: try to catch some (rare) mistakescinap_lenrek
kstrcpy() did not null terminate for < 4 byte buffers. fixed, but i dont think there is any case where this can happen in practice. always set malloctag in kstrdup(), cleanup. always use ERRMAX bounded kstrcpy() to set up->errstr, q->err and note[]->msg. paranoia. instead of silently truncating interface name in netifinit(), panic the kernel if interface name is too long as this case is clearly a mistake. panic kernel when filename is too long for addbootfile() in devroot. this might happen if your kernel configuration is messed up.
2012-10-01devproc buffer overflow, strncpycinap_lenrek
in devproc status read handler the p->status, p->text and p->user could overflow the local statbuf buffer as they where copied into it with code like: memmove(statbuf+someoff, p->text, strlen(p->text)). now using readstr() which will truncate if the string is too long. make strncpy() usage consistent, make sure results are always null terminated.
2012-09-14Qcoalesce patch to satisfy full read lengthcinap_lenrek
2012-07-08qio: raise critical queue bloat threshold from 2 to 10 times to queue limitcinap_lenrek
the limit for overqueueing was too small for stuff like fcp on a fileserver connected with a standard 32K limit pipe like ramfs. fcp usesd 8K*16procs > 32K*2 the biggest queue limit used in the kernel is 256K making the maximum queue bloat 2.5MB or 320K for standard pipes. that should be big enougth to never happen in practice unless there is a bug which we like to catch before we exhaust all kernel memory.
2011-08-10qio: fix block leak introduced by eqlock changecinap_lenrek
2011-08-10added eqlock(), a interruptable version of qlock. addresses issue #81cinap_lenrek
2011-07-09qio: naive fixing attempt on issue #64cinap_lenrek
2011-03-30Import sources from 2011-03-30 iso image - libTaru Karttunen
2011-03-30Import sources from 2011-03-30 iso imageTaru Karttunen