Re: [PATCH] mm: Implement swap prefetching tweaks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Con Kolivas wrote:
On Saturday 11 March 2006 15:28, Peter Williams wrote:

Con Kolivas wrote:

Because despite what anyone seems to want to believe, reading from disk
hurts. Why it hurts so much I'm not really sure, but it's not a SCSI vs
IDE with or without DMA issue. It's not about tweaking parameters. It
doesn't seem to be only about cpu cycles. This is not a mistuned system
that it happens on. It just plain hurts if we do lots of disk i/o,
perhaps it's saturating the bus or something. Whatever it is, as much as
I'd _like_ swap prefetch to just keep working quietly at ultra ultra low
priority, the disk reads that swap prefetch does are not innocuous so I
really do want them to only be done when nothing else wants cpu.


I didn't make it clear here the things affected are not even doing any I/O of their own. It's not about I/O resource allocation. However they are using 100% cpu and probably doing a lot of gpu bus traffic.


Would you like to try a prototype version of the soft caps patch I'm
working on to see if it will help?


What happens if it's using .01% cpu and spends most of its time in uninterruptible sleep?

Probably not much as I have to let tasks with a soft cap of zero get some CPU to avoid problems with them holding resource other tasks may need and 0.01% is probably as low as I can keep it anyway.

Just to clarify. At the moment, what I do to a task with a zero soft cap is give them a priority one above MAX_PRIO (i.e. 2 higher than any other task can have) and make sure they always go on the expired array at the end of their time slice. They also get a load weight of zero to prevent them getting a CPU to themselves. This means that any task that becomes runnable on their CPU should preempt them and if they're the only task on their CPU it will look idle and waking tasks may be moved there if the other CPUs are idle. This may be enough to stop them interfering with your game's tasks.

I'm currently letting them have a time slice determined by their nice in an attempt to reduce context switching but this may change as it probably allows them to get CPU access when there are non background tasks on the expired array. I'm still thinking about how to prevent this and keep context switching low.

Tasks with non zero soft caps go through a different process and (as far as possible) tasks without soft caps avoid the capping code.

Peter
PS This is still work in progress.
--
Peter Williams                                   [email protected]

"Learning, n. The kind of ignorance distinguishing the studious."
 -- Ambrose Bierce
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux