On 10/30/07, Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:Ok. I'm attempting to walk the code sequence. Here's what I think: - driver loads - driver vmalloc()s its fb - this creates the necessary pte entries then... - app mmap(/dev/fb0) - vma is created - defio mmap adds this vma to private list (equivalent of address_space or anon_vma) - app touches base + pixel(128,128) = base + 16k - page fault - defio nopage gets called - defio nopage does vmalloc_to_page(base+16k) - that finds the correct struct page corresponding to that vaddr. page->index has not been set by anyone so far, right? * ah... i see, you are suggesting that this is where I could set the index since i know the offset i want it to represent. right? - defio mkwrite get called. defio adds page to its list. schedules delayed work - app keeps writing the page - delayed work occurs - foreach vma { foreach page { page_mkclean_one(page, vma) } - cycle repeats... Thanks, jaya -
| monstr | [PATCH 26/60] microblaze_v4: time support |
| Jon Smirl | Re: 463 kernel developers missing! |
| Andrew Morton | Re: x86: 4kstacks default |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
git: | |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | Re: [GIT]: Networking |
| Jiri Olsa | [PATCHv5 0/2] net: fix race in the receive/select |
