Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DMA freezes every few seconds #295

Closed
Spuckwaffel opened this issue Apr 1, 2024 · 4 comments
Closed

DMA freezes every few seconds #295

Spuckwaffel opened this issue Apr 1, 2024 · 4 comments

Comments

@Spuckwaffel
Copy link

Hey there,
this is not really a bug, more like a general question.
When using the DMA to father much data, via scatters and without every few seconds (5 or 6) the dma encounters a freeze for a small period of time (sometimes just a few ms, on bad startups even up to small seconds) and i dont have some proper explanation for that. I also dont think it has anything to do with the config settings and some caching changes like VMMDLL_OPT_CONFIG_TICK_PERIOD, VMMDLL_OPT_CONFIG_READCACHE_TICKS, VMMDLL_OPT_CONFIG_TLBCACHE_TICKS etc. do not change the behavior. My quesses are maybe overheating? Im not sure. Any ideas?

@ufrisk
Copy link
Owner

ufrisk commented Apr 7, 2024

I've just updated the guide page about it: https://github.com/ufrisk/MemProcFS/wiki/FAQ_Timing#api-manually-refreshing-a-process-fast

It's probably best to disable internal refreshing and then perform the refreshes manually if you find the hiccup disturbing.

Let me know if this resolves your issue.

@ufrisk
Copy link
Owner

ufrisk commented Apr 15, 2024

Since I haven't heard anything in a week I assume the updated guide entry resolved the issue.

@ufrisk ufrisk closed this as completed Apr 15, 2024
@Spuckwaffel
Copy link
Author

Hey there, sorry for the late reply. I have read your new guide and it's really helpful. However, is there no way to only refresh the VADs? I could set VMMDLL_OPT_REFRESH_FREQ_MEDIUM, but this will refresh the entire process list (which i don't need), network connections, Objects, Heaps will be cleared which are most likely still good with data. I'm mostly just reading data of one or two processes and the only thing that changes within the process are the memory pages and heap so im not really interested in flushing and rereading all the other stuff related to the process as i store that efficiently.
Any ideas on how to focus only on VADs, TLB, etc? Also, I would still perform a MEDIUM refresh but wouldn't do that in such a frequent time, more like only every few minutes (unlike this is bad) and would do SLOW refreshes also way more less.

@ufrisk
Copy link
Owner

ufrisk commented Apr 17, 2024

There is no way to refresh the VADs only.

Your point is rather moot though since all the "refresh" does is to throw away all old info. This is quick.

Things like VADs, Modules etc. are only re-generated on first access. If you never access the modules after a refresh they will never be regenerated so it won't incur any time.

On the other hand if the number of VADs are very large it's a rather slow operation, but it's what you want to refresh so there is no way around it I guess.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants