LinuxTV Patchwork [ANNOUNCE] VDR developer version 1.7.31

login
register
mail settings
Submitter Klaus Schmidinger
Date Oct. 3, 2012, 12:55 p.m.
Message ID <506C35B4.9060704@tvdr.de>
Download mbox | patch
Permalink /patch/14865/
State New
Headers show

Comments

Klaus Schmidinger - Oct. 3, 2012, 12:55 p.m.
On 03.10.2012 13:03, Udo Richter wrote:
> Am 30.09.2012 15:41, schrieb Klaus Schmidinger:
>> - The new class cIoThrottle is used to allow I/O intense threads to temporarily
>>    suspend their activities in case buffers run full (suggested by Torsten Lang).
>>    Currently the cutter thread is suspended if the TS or Recorder buffer use more
>>    than 50% of their capacity. Plugin authors may want to participate in this
>>    mechanism if they use intense background I/O.
>
> I'd suggest to use this for the low disk space deleted recording cleanup too. Recently, I've seen an issue like this happen, using VDR-1.7.30, where my disk was nearly full, and some deleted recordings didn't get wiped before a new recording.

I guess this should do the trick:


> The deleting was surprisingly slow, probably because of the high disk fill and fragmentation. And for some reason, the overflow happened after the deleting. Not sure what caused the delay.

Which file system are you using for your video directory?
I recently switched from ext3 to ext4 and it does feel a little "snappier".

Klaus
Udo Richter - Oct. 3, 2012, 1:22 p.m.
Am 03.10.2012 14:55, schrieb Klaus Schmidinger:
> Which file system are you using for your video directory?
> I recently switched from ext3 to ext4 and it does feel a little "snappier".

Its an XFS disk, and it was surprisingly fast on deleting when it was 
fresh. Unfortunately,

> #>df -m /video
> Filesystem           1M-blocks      Used Available Use% Mounted on
> /dev/mapper/lvm--disk-data
>                         948568    943016      5553 100% /mnt/data

which is not a good use% to run any file system on long term. :(

Cheers,

Udo

Patch

--- recording.c 2012/09/30 13:05:14     2.64
+++ recording.c 2012/10/03 12:52:13
@@ -97,6 +97,8 @@ 
       bool deleted = false;
       cThreadLock DeletedRecordingsLock(&DeletedRecordings);
       for (cRecording *r = DeletedRecordings.First(); r; ) {
+         if (cIoThrottle::Engaged())
+            return;
           if (r->Deleted() && time(NULL) - r->Deleted() > DELETEDLIFETIME) {
              cRecording *next = DeletedRecordings.Next(r);
              r->Remove();

Privacy Policy