Sponsored Content
Full Discussion: Want to understand one patch
Operating Systems Linux Want to understand one patch Post 302921569 by shivnandan kuma on Saturday 18th of October 2014 02:03:07 PM
Old 10-18-2014
Want to understand one patch

I just wanted to understand the timer patch in timer.c.
It has already been merged in linux mainline kernel

It says that
Quote:
On architectures with sizeof(int) < sizeof (long), the
computation of mask inside apply_slack() can be undefined if the
computed bit is > 32.
I did not understand how it calcuates expires_limit as 0x20000000e from given value of expires=0xffffe6f5 and slack=25.

Any help will be apreciable.


E.g. with: expires = 0xffffe6f5 and slack = 25, we get:

Code:
   expires_limit = 0x20000000e
   bit = 33
   mask = (1 << 33) - 1  /* undefined */

It calculates expires_limit from the function apply_stack.



Code:
   static inline`enter code here`
     unsigned long apply_slack(struct timer_list *timer, unsigned long expires)
    {
         unsigned long expires_limit, mask;
         int bit;
 
         if (timer->slack >= 0) {`enter code here`
                 expires_limit = expires + timer->slack;
         } else {
                 long delta = expires - jiffies;
 
                 if (delta < 256)
                         return expires;
 
                expires_limit = expires + delta / 256;
         }
         mask = expires ^ expires_limit;
         if (mask == 0)
                 return expires;
 
         bit = find_last_bit(&mask, BITS_PER_LONG);
 
         mask = (1 << bit) - 1;

          expires_limit = expires_limit & ~(mask);
         return expires_limit;
    }


I am unable to understand how expires_limit = 0x20000000e??
Any help will be appreciated .

Thanks,

Last edited by Scrutinizer; 10-18-2014 at 03:08 PM.. Reason: Quote tags and code tags
 

8 More Discussions You Might Find Interesting

1. IP Networking

Patch-o-matic (patch for iptable) for linux2.4.08 & iptable1.2.7a

Hello friends I'm running Redhat 9.0 with linux kernel 2.4.20-8 & have iptables version 1.2.7a & encountering a problem that I narrate down. I need to apply patch to my iptable and netfilter for connection tracking and load balancing that are available in patch-o-matic distribution by netfilter.... (0 Replies)
Discussion started by: Rakesh Ranjan
0 Replies

2. UNIX for Dummies Questions & Answers

can't understand

how i can download this game n start it :S (5 Replies)
Discussion started by: BoyArcher
5 Replies

3. What is on Your Mind?

dont understand

i'm trying to learn unix and i posted a question and what i was typing from school. i can't figure it out. how am i supposed to learn , when i get shutdown by an admin. for posting a homework question. doesn't make any sense. its a dumb rule. thanks for helping (4 Replies)
Discussion started by: AtomJ22
4 Replies

4. UNIX for Dummies Questions & Answers

can't understand this at all.

Ok, i've been trying to write some shell scripts. nothing challenging, but just automating All of the tutorials i read say to start the file with #!/bin/bash or whatever your path to bash is. So i do it, and all of my scripts error out saying ./nameofscript:command not found when i... (4 Replies)
Discussion started by: severndigital
4 Replies

5. UNIX for Dummies Questions & Answers

Trying to understand getopts

Hope these are basic to some as they are definitely advanced to me, but what is this used for. Some kind of menu selection? while getopts a:d:e:m: eOPT do case $eOPT in a) eTYPE="$OPTARG";; d) eBDIR="$OPTARG";; e) eENV="$OPTARG";; m) eMODE="$OPTARG";; ... (1 Reply)
Discussion started by: NycUnxer
1 Replies

6. Linux

cant understand patch file

I am trying to attach a patch file.The output I am getting is patching file net/ipv4/ip_forward.c Hunk #1 succeeded at 38 (offset -2 lines). Hunk #2 succeeded at 113 with fuzz 2 (offset -2 lines). Hunk #3 FAILED at 152. Hunk #4 succeeded at 197 (offset 1 line). 1 out of 4 hunks FAILED --... (0 Replies)
Discussion started by: akaash1087
0 Replies

7. Shell Programming and Scripting

can't understand!

Hi All, can you please help me to figured out what's the meaning of this. ${SERVER_DATABASE} -b << EOF 2>>/dev/null THanks, (3 Replies)
Discussion started by: nikki1200
3 Replies

8. UNIX for Dummies Questions & Answers

help me to understand this code

Hi guys can you please help me to understand this code . tmpArray=(${line//=/ }) Please next time open a new thread in the appropriate forum and use code tags (6 Replies)
Discussion started by: sandhya.gilla
6 Replies
GETITIMER(2)							System Calls Manual						      GETITIMER(2)

NAME
getitimer, setitimer - get/set value of interval timer SYNOPSIS
#include <sys/time.h> #define ITIMER_REAL 0 /* real time intervals */ #define ITIMER_VIRTUAL 1 /* virtual time intervals */ #define ITIMER_PROF 2 /* user and system virtual time */ getitimer(which, value) int which; struct itimerval *value; setitimer(which, value, ovalue) int which; struct itimerval *value, *ovalue; DESCRIPTION
The system provides each process with three interval timers, defined in <sys/time.h>. The getitimer call returns the current value for the timer specified in which in the structure at value. The setitimer call sets a timer to the specified value (returning the previous value of the timer if ovalue is nonzero). A timer value is defined by the itimerval structure: struct itimerval { struct timeval it_interval; /* timer interval */ struct timeval it_value; /* current value */ }; If it_value is non-zero, it indicates the time to the next timer expiration. If it_interval is non-zero, it specifies a value to be used in reloading it_value when the timer expires. Setting it_value to 0 disables a timer. Setting it_interval to 0 causes a timer to be dis- abled after its next expiration (assuming it_value is non-zero). Time values smaller than the resolution of the system clock are rounded up to this resolution (on the VAX, 10 milliseconds). The ITIMER_REAL timer decrements in real time. A SIGALRM signal is delivered when this timer expires. The ITIMER_VIRTUAL timer decrements in process virtual time. It runs only when the process is executing. A SIGVTALRM signal is delivered when it expires. The ITIMER_PROF timer decrements both in process virtual time and when the system is running on behalf of the process. It is designed to be used by interpreters in statistically profiling the execution of interpreted programs. Each time the ITIMER_PROF timer expires, the SIGPROF signal is delivered. Because this signal may interrupt in-progress system calls, programs using this timer must be prepared to restart interrupted system calls. NOTES
Three macros for manipulating time values are defined in <sys/time.h>. Timerclear sets a time value to zero, timerisset tests if a time value is non-zero, and timercmp compares two time values (beware that >= and <= do not work with this macro). NOTES (PDP-11) On the PDP-11, setitimer rounds timer values up to seconds resolution. (This saves some space and computation in the overburdened PDP-11 kernel.) RETURN VALUE
If the calls succeed, a value of 0 is returned. If an error occurs, the value -1 is returned, and a more precise error code is placed in the global variable errno. ERRORS
The possible errors are: [EFAULT] The value parameter specified a bad address. [EINVAL] A value parameter specified a time was too large to be handled. SEE ALSO
sigvec(2), gettimeofday(2) 4.2 Berkeley Distribution August 26, 1985 GETITIMER(2)
All times are GMT -4. The time now is 05:13 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy