[LTP] [PATCH v1] libswap.c: Improve caculate swap dev number
Yang Xu (Fujitsu)
xuyang2018.jy@fujitsu.com
Mon Mar 4 10:18:33 CET 2024
Hi Li,
>
>
> On Sun, Mar 3, 2024 at 9:14 PM Petr Vorel <pvorel@suse.cz
> <mailto:pvorel@suse.cz>> wrote:
>
> Hi Wei, Xu,
>
> > Hi Wei
>
> > > I encounter a dead loop on following code in our test on ppc64
> machine:
> > > while ((c = fgetc(fp)) != EOF)
>
> > > I think "/proc/swaps" is not normal file and can not get EOF in
> some situation,
> > > so i use fgets a line and caculate swap dev number.
>
> I guess the problem has been fixed by another patch [1], thus
> closing it in
> patchwork. Please let me know if not.
>
>
> Seems not, the patch [1] below is mainly to count the free disk size.
>
> But Wei's work here is to calculate swap-dev numbers correctly
> (especially get rid of EOF affection to some degree).
>
> Xu Yang, what do you think? or did I miss anything here?
>
>
I still think we can use the same way in ipc libs to get rid of the EOF
problem instead of
searching "dev" keyword. We just don't need to calcualte "/proc/swaps"
header.
int get_used_sysvipc(const char *file, const int lineno, const char
*sysvipc_file)
{
FILE *fp;
int used = -1;
char buf[BUFSIZE];
fp = safe_fopen(file, lineno, NULL, sysvipc_file, "r");
while (fgets(buf, BUFSIZE, fp) != NULL)
used++;
fclose(fp);
if (used < 0) {
tst_brk(TBROK, "can't read %s to get used sysvipc resource total at "
"%s:%d", sysvipc_file, file, lineno);
}
return used;
}
But we don't get the actual reason, I still wonder why this deadloop
exists o ppcc64 instead of
other architecture(ie x86_64).
Best Regards
Yang Xu
>
> --
> Regards,
> Li Wang
More information about the ltp
mailing list