mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* what is the state of current after an mm_fault occurs?
@ 2006-01-04 10:40 jeff shia
  2006-01-05  1:48 ` Andrew Morton
  0 siblings, 1 reply; 7+ messages in thread
From: jeff shia @ 2006-01-04 10:40 UTC (permalink / raw)
  To: linux-kernel

Hello,
       In my opinion, the state of current should be TASK_RUNNING
after an mm_fault occurs.But I donot know why the function of
handle_mm_fault() set the state of current TASK_RUNNING.
/*
 * By the time we get here, we already hold the mm semaphore
 */
int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct * vma,
	unsigned long address, int write_access)
{
	pgd_t *pgd;
	pmd_t *pmd;

	__set_current_state(TASK_RUNNING);
	pgd = pgd_offset(mm, address);

	inc_page_state(pgfault);

	if (is_vm_hugetlb_page(vma))
		return VM_FAULT_SIGBUS;	/* mapping truncation does this. */

	/*
	 * We need the page table lock to synchronize with kswapd
	 * and the SMP-safe atomic PTE updates.
	 */
	spin_lock(&mm->page_table_lock);
	pmd = pmd_alloc(mm, pgd, address);

	if (pmd) {
		pte_t * pte = pte_alloc_map(mm, pmd, address);
		if (pte)
			return handle_pte_fault(mm, vma, address, write_access, pte, pmd);
	}
	spin_unlock(&mm->page_table_lock);
	return VM_FAULT_OOM;
}

any help will be preferred.
Thank you!!

Jeff

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2006-01-05 23:18 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-04 10:40 what is the state of current after an mm_fault occurs? jeff shia
2006-01-05  1:48 ` Andrew Morton
2006-01-05  3:20   ` jeff shia
2006-01-05  3:23     ` Andrew Morton
2006-01-05 20:30       ` Christoph Lameter
2006-01-05 23:18         ` Andrew Morton
2006-01-05 21:17     ` Ram Gupta

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®