Re: Real-time problem due to IO congestion.

From: Andrew Morton
Date: Fri Jun 10 2005 - 01:44:03 EST


Takashi Ikebe <ikebe.takashi@xxxxxxxxxxxxx> wrote:
>
> There are 2 type processes in test environment.
> 1. The real-time needed process (run on with high static priority)
> The process wake up every 10ms, and wake up, write some log (the
> test case is current CPU clock via tsc) to the file.
>
> 2. The process which make IO load
> The process have large memory size, and kill the process with dumping.
> The process's memory area exceeds 70% of whole physical
> RAM.(Actually 1.5GB memory area while whole RAM is 2GB)
>
> Whenever during dumping, the real-time needed process sometimes stop for
> long time during write system call. (sometimes exceeds 1000ms)

The writeback code does attempt to give some preference to realtime tasks
(in get_dirty_limits()), but it can only work up to a point.

Frankly, your application is poorly designed. If you want sub-10ms
responsiveness you shouldn't be doing disk I/O. The realtime task should
hand the data off to a non-realtime task for writeout, with suitable
amounts of buffering in between.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/