lkml.org 
[lkml]   [2018]   [Mar]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC 3/4] trace_uprobe: Support SDT markers having semaphore
From
Date


On 03/01/2018 07:37 PM, Masami Hiramatsu wrote:
> On Wed, 28 Feb 2018 13:23:44 +0530
> Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com> wrote:
>
>> @@ -502,6 +504,16 @@ static int create_trace_uprobe(int argc, char **argv)
>> for (i = 0; i < argc && i < MAX_TRACE_ARGS; i++) {
>> struct probe_arg *parg = &tu->tp.args[i];
>>
>> + /* This is not really an argument. */
>> + if (argv[i][0] == '*') {
>> + ret = kstrtoul(&(argv[i][1]), 0, &tu->sdt_offset);
>> + if (ret) {
>> + pr_info("Invalid semaphore address.\n");
>> + goto error;
>> + }
>> + continue;
>> + }
> So, this part should be done with parsing probe-point as I pointed.

Yes, will change it.

>> +static void sdt_increment_sem(struct trace_uprobe *tu)
>> +{
>> + struct uprobe_map_info *info;
>> + struct vm_area_struct *vma;
>> + unsigned long vaddr;
>> +
>> + uprobe_start_dup_mmap();
>> + info = build_uprobe_map_info(tu->inode->i_mapping, tu->sdt_offset, false);
>> + if (IS_ERR(info))
>> + goto out;
>> +
>> + while (info) {
>> + down_write(&info->mm->mmap_sem);
>> + vma = sdt_find_vma(info->mm, tu);
>> + if (!vma)
>> + goto cont;
>> +
>> + vaddr = offset_to_vaddr(vma, tu->sdt_offset);
>> + sdt_update_sem(info->mm, vaddr, 1);
>> +
>> +cont:
> Why would you use goto here?

Hmm.. sdt_find_vma() must return vma. Sure, will remove the goto.

Should I add a WARN_ON(!vma) ?

Thanks for the review,
Ravi

\
 
 \ /
  Last update: 2018-03-02 04:55    [W:0.138 / U:0.064 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site