public inbox for systemtap@sourceware.org
 help / color / mirror / Atom feed
From: Prasanna S Panchamukhi <prasanna@in.ibm.com>
To: "Zhang, Yanmin" <yanmin.zhang@intel.com>
Cc: systemtap@sources.redhat.com,         "Keshavamurthy,
	Anil S" <anil.s.keshavamurthy@intel.com>,
	        "Mao, Bibo" <bibo.mao@intel.com>
Subject: Re: Review patches of user space kprobe
Date: Thu, 05 Jan 2006 11:06:00 -0000	[thread overview]
Message-ID: <20060105110957.GD30216@in.ibm.com> (raw)
In-Reply-To: <8126E4F969BA254AB43EA03C59F44E840447BD45@pdsmsx404>

> >>+	struct page *page;
> >>+	struct uprobe_module *m;
> >>+	struct uprobe *up = NULL;
> >>+	struct hlist_node *node;
> >>+
> >>+	m = get_module_by_inode(file->f_dentry->d_inode);
> There is a race condition between unregister_userspace_probe and here.
> If a thread jumps to the beginning of function up_readpages while
> another thread calls unregister_userspace_probe to delete the um, the
> first thread might return error.

Some locking/semaphore can be used to avoid this. 

> >>+						lock_page(up->page);
> The first patch doesn't do lock_page before calling insert_probe_page.
> Why does this patch do so? It's inconsistent.
> 

Next patch release will take care of this.

> >>+	int kprobe_page_mapped = 0;
> >>+	struct hlist_node *node;
> >>+
> >>+	m = get_module_by_inode(file->f_dentry->d_inode);
> The same race condition like above function.
> 

Some locking/semaphore can be used to avoid this. 
> PAGE_CACHE_SHIFT,
> >>+					page->index <<
> PAGE_CACHE_SHIFT)) {
> >>+				up->page = page;
> >>+				if (!map_uprobe_page(up,
> kprobe_page_mapped)) {
> >>+					lock_page(up->page);
> Same inconsistent issue.
> 
> 
> >>+					kprobe_page_mapped = 1;
> >>+					retval = insert_probe_page(up);
> >>+				}
> >>+			}
> >>+		}
> >>+		if (kprobe_page_mapped) {
> The logic here is incorrect. If there are many uprobes at the same page,
> up just points to the last one. How about others? 
> 

readpage() routine reads one page at a time. we map the page one time and walk the 
probes list for this inode, insert all the probes within this page and then unmap it.

Thanks
Prasanna
-- 

Prasanna S Panchamukhi
Linux Technology Center
India Software Labs, IBM Bangalore
Email: prasanna@in.ibm.com
Ph: 91-80-25044636

  parent reply	other threads:[~2006-01-05 11:06 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-12-22  5:41 Zhang, Yanmin
2005-12-22  6:00 ` Vara Prasad
2006-01-05 11:06 ` Prasanna S Panchamukhi [this message]
  -- strict thread matches above, loose matches on Subject: below --
2006-01-09  2:06 Zhang, Yanmin
2006-01-09  2:04 Zhang, Yanmin
2006-01-09  1:48 Zhang, Yanmin
2006-01-06  9:12 Zhang, Yanmin
2006-01-06  9:28 ` Prasanna S Panchamukhi
2006-01-06  9:08 Zhang, Yanmin
2006-01-06 10:22 ` Prasanna S Panchamukhi
2006-01-06 10:30   ` Roland McGrath
2006-01-06  5:29 Zhang, Yanmin
2006-01-06  9:08 ` Prasanna S Panchamukhi
2006-01-06  5:22 Zhang, Yanmin
2006-01-06  9:04 ` Prasanna S Panchamukhi
2006-01-06  4:27 Zhang, Yanmin
2006-01-06 12:28 ` Prasanna S Panchamukhi
2006-01-06  3:20 Zhang, Yanmin
2006-01-06  8:53 ` Prasanna S Panchamukhi
2006-01-06  2:52 Zhang, Yanmin
2006-01-06  6:53 ` Prasanna S Panchamukhi
2006-01-05  7:09 Zhang, Yanmin
2006-01-05 11:27 ` Prasanna S Panchamukhi
2005-12-22 13:24 Zhang, Yanmin
2006-01-05 11:10 ` Prasanna S Panchamukhi
2005-12-22  7:14 Zhang, Yanmin
2005-12-22  5:34 Zhang, Yanmin
2006-01-05 10:30 ` Prasanna S Panchamukhi
2005-12-22  5:09 Zhang, Yanmin
2006-01-05 10:29 ` Prasanna S Panchamukhi
2005-12-21  8:31 Zhang, Yanmin
2006-01-05 10:28 ` Prasanna S Panchamukhi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20060105110957.GD30216@in.ibm.com \
    --to=prasanna@in.ibm.com \
    --cc=anil.s.keshavamurthy@intel.com \
    --cc=bibo.mao@intel.com \
    --cc=systemtap@sources.redhat.com \
    --cc=yanmin.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).