Re: [PATCH v5] staging: axis-fifo: initialize timeouts in probe only

From: Fabio M. De Francesco
Date: Thu Mar 16 2023 - 16:07:22 EST


On giovedì 16 marzo 2023 19:35:09 CET Khadija Kamran wrote:
> On Thu, Mar 16, 2023 at 05:17:47PM +0100, Fabio M. De Francesco wrote:
> > On giovedì 16 marzo 2023 16:09:08 CET Khadija Kamran wrote:

[snip]

> Hey Fabio!
>
> Hope you are doing well. After spending a lot of time on this I am
> stuck now. Kindly help me resolve this issue or understand it better.
>
> Following your instructions I deleted my config file and copied one from
> the /boot/ directory. After that I enabled the dependencies(CONFIG_OF=y
> and CONFIG_HAS_IOMEM=y). I was successfully able to enable axis-fifo as
> a module.
>
> I then ran the following commands:
> - make drivers/staging/axis-fifo/

No, this is not the right command... you are not invoking the linker to make
the .ko object.

Use "make M=drivers/staging/axis-fifo/"
or "make M=drivers/staging/axis-fifo/ W=1 -j8" (the latter to enable level '1'
warning and run on your 2 * 4 logical cores).

> - sudo make modules_install install(this command took hours) :'(

This is odd, it shouldn't :-/

As I said in another message, I'll set aside some time to help you check if
you need to fine tune your VM and Hypervisor configuration.

I'm returning on the same subject we have been talked about because you said
at least twice that your builds and install are too slow. We'll try to
diagnose it in an IRC session on #kernel-outreachy (I'm pretty sure for the
first days of next week - I'll send an invite).

> > When you are done with build, install, and final reboot to test if your
> > module can "modprobe" or "insmod" (i.e. link with the running custom
kernel
> > you built, installed and boot), try to compare the output of the following
> > commands:
> >
> > # uname -a
> > Linux suse 6.2.2-1-default #1 SMP PREEMPT_DYNAMIC Thu Mar 9 06:06:13 UTC
> > 2023 (44ca817) x86_64 x86_64 x86_64 GNU/Linux
>
> The above command works
>
> > AND
> >
> > # modinfo <name of the module you are testing here>
>
> On running 'modinfo axis-fifo' I get error saying module axis-fifo not
> found.

Try again after building with "M=drivers/staging" (as said above). Don't
forget to run "make modules_install install" and then reboot into your custom
built Kernel, not the distribution's kernel.

While you are there, run "lsmod" to see all loaded modules. Pick one randomly
from the output list and run "modinfo name_of_the_module_you_want_info_about".

> > I'm running "modinfo kvm" (but showing only two of many lines):
> >
> > # modinfo kvm
> > filename: /lib/modules/6.2.2-1-default/kernel/arch/x86/kvm/
kvm.ko.zst
> > vermagic: 6.2.2-1-default SMP preempt mod_unload modversions
> >
> > Can you see that the kernel in "uname -a" and the filename and vermagic
have
> > the same "6.2.2-1-default"? Well, so I'm sure I'm running the right Kernel
> > and inserted the appropriate "kvm" module.
> >
> > Furthermore, before rebooting your custom kernel, you may also look at the
> > directory in the Kernel where you compiled your module and search for
"*.o"
> > "*mod*" and "*.ko" files. If you have them, you built your module
properly.
>
> There is a "*.o" file and "*.mod" file but there is no "*.ko" file in
> the axis-fifo directory.
>
> Kindly help me with this.
>
> Regards,
> Khadija
>
> > Thanks,
> >
> > Fabio

Let me know if this time it works.

Fabio

P.S.: Have you had time to read that "Linux Kernel Module Programming" guide I
sent you the link of? You can find a lot of information about modules there.
I'd strongly recommend you to read it.