Skip to contentSkip to conversation

vmscan.c heuristic adjustment for smaller systems

DISCUSSION Marc Singer 2 participants 2 messages Apr 18, 2004 2 messages not in the archive Memory management

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): 20040418174743.GC28744@flea

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw
Quoted 6 lines · William Lee Irwin III
Quoted 3 lines · Marc Singer

That has been my hypothesis all along. But I have failed to prove it to myself. Please steer me if I've missed your point about flushing TLB entries when we age PTEs.

Well, there's a point of some kind to it.

I don't think I understand what you mean.

Quoted 9 lines · Marc Singer
Quoted 6 lines

So, I tried this. Since I don't know the virtual address for a PTE in the set_pte() routine, I changed it to flush the whole TLB whenever it sets a hardware PTE entry to zero. Yet, I still get the slow-down behavior. I also changed the TLB flush routines to always do a complete TLB flush instead of flushing individual entries. Still, no change in the slow-down.

Actually ptep_to_address() should find the uvaddr for you.

The set_pte function is assembler coded. For a proof of concept, I am willing to be blunt.

Quoted 5 lines · Marc Singer
Quoted 2 lines

So, if my slow-down is related to lazy TLB flushing then I am at a loss to explain how.

I'm not going to tell ou what your results are.

Perhaps, though, this isn't such a bad result. It could mean that the lazy TLB flush is OK and that my bug is something different. Or, it could mean that I'm still doing the flush incorrectly and that that is the correct solution were it done right.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>

#3 lore raw
Quoted 1 line · William Lee Irwin III
Quoted 1 line

Well, there's a point of some kind to it.

Quoted 1 line · Marc Singer

I don't think I understand what you mean.

Feeding the replacement heuristics better input tends to get better results, or something on that order.

Quoted 1 line · William Lee Irwin III
Quoted 1 line

Actually ptep_to_address() should find the uvaddr for you.

Quoted 2 lines · Marc Singer

The set_pte function is assembler coded. For a proof of concept, I am willing to be blunt.

If you're stuck examining struct page you might want to keep it in C for a while.

Quoted 1 line · William Lee Irwin III
Quoted 1 line

I'm not going to tell ou what your results are.

Quoted 4 lines · Marc Singer

Perhaps, though, this isn't such a bad result. It could mean that the lazy TLB flush is OK and that my bug is something different. Or, it could mean that I'm still doing the flush incorrectly and that that is the correct solution were it done right.

Was this the one-liner in vmscan.c from earlier?

-- wli

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>