From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=1.0 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,HTML_MESSAGE,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,ZIPFILE autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79626FA372B for ; Thu, 17 Oct 2019 06:24:37 +0000 (UTC) Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DA5D02054F for ; Thu, 17 Oct 2019 06:24:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=dke-khu-ac-kr.20150623.gappssmtp.com header.i=@dke-khu-ac-kr.20150623.gappssmtp.com header.b="nhpTFDgw" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DA5D02054F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=dke.khu.ac.kr Authentication-Results: mail.kernel.org; spf=fail smtp.mailfrom=kernelnewbies-bounces@kernelnewbies.org Received: from localhost ([::1] helo=shelob.surriel.com) by shelob.surriel.com with esmtp (Exim 4.92.3) (envelope-from ) id 1iKzCn-0005qI-VG; Thu, 17 Oct 2019 02:24:13 -0400 Received: from mail-lj1-x235.google.com ([2a00:1450:4864:20::235]) by shelob.surriel.com with esmtps (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92.3) (envelope-from ) id 1iKzCk-0005qB-N7 for kernelnewbies@kernelnewbies.org; Thu, 17 Oct 2019 02:24:10 -0400 Received: by mail-lj1-x235.google.com with SMTP id m7so1243630lji.2 for ; Wed, 16 Oct 2019 23:24:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dke-khu-ac-kr.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=XCsWvVuv4FGk6dUuuZJBaU5YsaC/OmNMpzi4G8GrQQA=; b=nhpTFDgwM/oemdsciMTVQoTwxcL9n+in5Phm+iQg8OAb1eDOEl62nRNXnVSlom+Io/ nFZFPsEhmGVjq1DJPXJKv5pwnx1agqOD/YPCkKGN43dpU44hlOHf2wkA5HGc8uvgizxZ cKAONDL7Z+mimtGw4YHmCWZwQtsZMsYDKCLPni/itpFMlsgTSq5bLC/MJVosnk7xmQb9 pAPVm7LE+Pf3wQt4X+VscoMlklASBVkWnTM3+5Ol3Uqumn4DZ6TYHrsWdbGOuMgm7llj kTxDu+Adrag0913B5dJnZcYI3kOO6Kl/R3r1XOYCSPDS8SH0k9jkSjKBhQS5rqVVxrFB PtQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=XCsWvVuv4FGk6dUuuZJBaU5YsaC/OmNMpzi4G8GrQQA=; b=T0nb8tHG5+skCtzWhx9A60HSk7p4bdQv/rINle+LZl7DzssMOM7jPe5a9z8EU4bMyB njX10YYEitIyxAUF1qjyIZHGsBfgM6kB8vRPahCtO43g4zgkFeDF6VGaAwm6jMHUIg4s L2v4JL7gm9ZmDGBl93emYIUFmuGQb1M27qcE5NvEgvWKDMgXah6tXKbPtp35Xv9ahLOw 5zxS+d/amVzCf0xsbvNfoWM/x82o5eQ1IWRSmxLTu5HvtmWjX3zTmfWV93YPlR62aoQ9 w55BlzW7v72yE6v2wOSL6B8KDRi/cJtHpUe7Fhs1r/EwkcFjRJgi8JkDClLX7XVjGu3n 01hg== X-Gm-Message-State: APjAAAWAw0UtFp1RMxTIpAEAJLjjXqwYFJpqzLBLDu3sIder0FRbKOrG Z2CZLT38p+vg0XP8QHHxqxdsLevAYJApRAe9nkCb0w== X-Google-Smtp-Source: APXvYqyxRqq1QqFDYzGrc71m2NG+J4wU59yoaLV+28lpKo6u1x7ZsBsc5VzxWaWjscM4HM+xPq++M4k5HO1enfU0SFE= X-Received: by 2002:a2e:9b8a:: with SMTP id z10mr1273213lji.80.1571293447305; Wed, 16 Oct 2019 23:24:07 -0700 (PDT) MIME-Version: 1.0 References: <148442.1571236181@turing-police> In-Reply-To: <148442.1571236181@turing-police> From: =?UTF-8?B?SXJmYW4gVWxsYWggKOyauOudvCDsnbTrpbTtjJAp?= Date: Thu, 17 Oct 2019 15:23:56 +0900 Message-ID: Subject: Re: Getting netlink socket creation returns NULL in the kernel To: =?UTF-8?Q?Valdis_Kl=C4=93tnieks?= Content-Type: multipart/mixed; boundary="000000000000c3f7e50595154313" Cc: kernelnewbies@kernelnewbies.org X-BeenThere: kernelnewbies@kernelnewbies.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Learn about the Linux kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernelnewbies-bounces@kernelnewbies.org --000000000000c3f7e50595154313 Content-Type: multipart/alternative; boundary="000000000000c3f7e20595154311" --000000000000c3f7e20595154311 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable My actual goal is to develop kernel space and user space programs to establish communication in which kernel should initiate the communication. The kernel will send information (e.g., guest physical address from handle_ept_violation() in vmx.c, finding the corresponding page of that address, owner process (or if possible the application, i.e., VLC, open office) of the page, process/application releasing the page) at run time to the user space application. I have written code consists of three file i.e., netlink_kernel_module.c, netlink_kernel_space.h, netlink_user_module.c. "netlink_kernel_module.c" contains just kernel loading/ unloading module functions i.e., __init hello_init(), and _exit hello_exit(). "netlink_kernel_space.h" contains all the rest of the kernel space code for sending/ receiving data while "netlink_user_module.c" contains the user space application code for sending/receiving data. *During development and testing* I use "netlink_kernel_module.c" to load and unload kernel module, in which the "__init hello_init()" just call the "create_socket(int data)" defined in "netlink_kernel_space.h" with the data which I want to pass to the user space program. And my code works perfectly in this way. *But, To get the required data from the kernel in real time*, I include " netlink_kernel_space.h " in kernel file i.e., vmx.c and call the "create_socket(int data)" from the handle_ept_voilation() defined in vmx.c after line#5098. I compile, and install the kernel, and reboot the system (and thus I don't need "netlink_kernel_module.c" because I don't load/unload the kernel module but include "netlink_kernel_space.h" in the vmx.c by using #include "netlink_kernel_space.h"). But, I am getting =E2=80=9CNULL= =E2=80=9D while creating socket (nl_sk =3D NULL in nl_sk =3D netlink_kernel_create(&init_ne= t, NETLINK_USER, &cfg);). Here code also shows weird behaviour. If I put 1-3 seconds sleep just before the socket creating statement, then it works just during booting of the virtual machine, after successful boot I get the same socket NULL error. Please find the code in the attachment.. Thank you very much. On Wed, Oct 16, 2019 at 11:29 PM Valdis Kl=C4=93tnieks wrote: > On Wed, 16 Oct 2019 13:54:08 +0900, Irfan Ullah said: > > > developed kernel space, and user space programs. Kernel and user space > > programs working perfectly when I load and run these modules from the > > terminal using =E2=80=9Csudo insmod kernelmodule.ko=E2=80=9D, and =E2= =80=9C./userspaceApp=E2=80=9D > > respectively. But, when I try to use kernel program (directly as a > header > > file #include "kernelmodule.h") with the kernel original file that is > > =E2=80=9Cvmx.c=E2=80=9D then it returns =E2=80=9CNULL=E2=80=9D while cr= eating socket (nl_sk =3D NULL in > nl_sk > > You're going to have to explain in more detail what you're doing, and > possibly > share your code. "when I try to use kernel program directly" doesn't mak= e > sense.... > > --=20 *Best Regards,* *Mr. Irfan Ullah* PhD Candidate Data and Knowledge Engineering(DKE) Lab Department of Computer Science and Engineering Kyung Hee University, South Korea. +82-010-591-51651 <+82%2010-3877-8867> sahibzada.iu@gmail.com sahibzada_irfanullah --000000000000c3f7e20595154311 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
My actual goal is to develop kernel space and user sp= ace programs to establish communication in which kernel should initiate the= communication. The kernel will send information (e.g., guest physical addr= ess from handle_ept_violation() in vmx.c, finding the corresponding page of= that address, owner process (or if possible the application, i.e., VLC, op= en office) of the page, process/application releasing the page) at run time= to the user space application.
I have written code=C2=A0 consis= ts of three file i.e., netlink_kernel_module.c, netlink_kernel_space.h, net= link_user_module.c.=C2=A0 "netlink_kernel_module.c" contains just= kernel loading/ unloading module functions i.e.,=C2=A0__init hello_init(),= and=C2=A0_exit hello_exit().=C2=A0 "netlink_kernel_space.h" cont= ains all the rest of the kernel space code for sending/ receiving data whil= e=C2=A0 =C2=A0"netlink_user_module.c" contains the user space app= lication code for sending/receiving data.=C2=A0

During development and testing I use=C2=A0 "netlink_kernel_module= .c" to load and unload kernel module, in which the "__init hello_= init()" just call the "create_socket(int data)" defined in= =C2=A0 "netlink_kernel_space.h" with the data which I want to pass to the user space program. And my code w= orks perfectly in this way.=C2=A0

But, To get t= he required data from the kernel in real time, I include=C2=A0 " netlink_kernel_space.h " in kernel file i.e., vmx.c and call the=C2=A0 "create_socket(in= t data)"=C2=A0 from the handle_ept_voil= ation() defined in vmx.c=C2=A0after line#5098. I compile, and install t= he kernel, and reboot the system (and thus I don't need=C2=A0=20 "netlink_kernel_module.c"=C2=A0 because I don't load/unload t= he kernel module but include=C2=A0 "netlink_kernel_space.h"=C2=A0 in the vmx.c by using #include &qu= ot;netlink_kernel_space.h").=C2=A0 But, I am getting =E2=80=9CNULL=E2= =80=9D while creating socket (nl_sk =3D NULL in nl_sk =3D netlink_kernel_cr= eate(&init_net, NETLINK_USER, &cfg);). Here code also shows weird b= ehaviour. If I put 1-3 seconds sleep just before the socket creating statem= ent, then it works just during booting of the virtual machine, after succes= sful boot I get the same socket NULL error. Please find the code in the att= achment..
Thank you very much.

On Wed, Oct 16, 2019 at 11:29= PM Valdis Kl=C4=93tnieks <valdis.kletnieks@vt.edu> wrote:
On Wed, 16 Oct 2019 13:54:08 +0900, = Irfan Ullah said:

> developed kernel space, and user space programs.=C2=A0 Kernel and user= space
> programs working perfectly when I load and run these modules from the<= br> > terminal using =E2=80=9Csudo insmod kernelmodule.ko=E2=80=9D, and =E2= =80=9C./userspaceApp=E2=80=9D
> respectively.=C2=A0 But, when I try to use kernel program=C2=A0 (direc= tly as a header
> file #include "kernelmodule.h") with the kernel original fil= e that is
> =E2=80=9Cvmx.c=E2=80=9D then it returns =E2=80=9CNULL=E2=80=9D while c= reating socket (nl_sk =3D NULL in nl_sk

You're going to have to explain in more detail what you're doing, a= nd possibly
share your code.=C2=A0 "when I try to use kernel program directly"= ; doesn't make sense....



--
Best Regards,


Mr. Irfan Ullah
PhD Candidate
Data and Knowledge = Engineering(DKE) Lab
Department of= Computer Science and Engineering
= Kyung Hee University, South Korea.
=C2=A0sahibzada_irfanullah
=
--000000000000c3f7e20595154311-- --000000000000c3f7e50595154313 Content-Type: application/zip; name="Kernel_User_comm.zip" Content-Disposition: attachment; filename="Kernel_User_comm.zip" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k1ubhx180 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 --000000000000c3f7e50595154313 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies --000000000000c3f7e50595154313--