07 May, 2014

1 commit


03 May, 2014

10 commits


02 May, 2014

3 commits


30 Apr, 2014

8 commits

  • edma param struct is now within an edma_pset struct introduced in Thomas
    Gleixner's edma tx status series. Update memcpy function for the same.

    Cc: Thomas Gleixner
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Joel Fernandes
     
  • The granular residue accounting code uses certain variables specifically
    for residue accounting. Document these in the structure declaration.
    Also move around some elements and group them together.

    Cc: Thomas Gleixner
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Joel Fernandes
     
  • The first slot in the ParamRAM of EDMA holds the current active
    subtransfer. Depending on the direction we read either the source or
    the destination address from there. In the internal psets we have the
    address of the buffer(s).

    In the cyclic case we only use the internal pset[0] which holds the
    start address of the circular buffer and calculate the remaining room
    to the end of the buffer.

    In the SG case we read the current address and compare it to the
    internal psets address and length.

    - If the current address is outside of this range, the pset has been
    processed already and we mark it done, update the residue_stat value
    and process the next set. That avoids that we need to walk all
    processed psets for every invocation of tx_status.

    - If its inside the range we know that we look at the current active
    set and stop the walk.

    - In case of intermediate transfers we update the stats in the
    interrupt callback function before starting the next batch of
    transfers. The tx_status callback and the interrupt callback are
    serialized via vchan.lock.

    Signed-off-by: Thomas Gleixner
    [joelf@ti.com: Hunk #2 in original patch manually applied]
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Thomas Gleixner
     
  • As Joel pointed out, edma_read_position() uses memcpy_fromio() to read
    the parameter ram. That's not synchronized with the internal update as
    it does a byte by byte copy. We need to do a 32bit read to get a
    consistent value.

    Further reading destination and source is pointless. In DEV_TO_MEM
    transfers we are only interested in the destination, in MEM_TO_DEV we
    care about the source. In MEM_TO_MEM it really does not matter which
    one you read.

    Simple solution: Remove the pointers, select dest/source via a bool
    and return the read value.

    Remove the export of this function while at it. The only potential
    user is the dmaengine and that's always builtin.

    Signed-off-by: Thomas Gleixner
    Acked-by: Sekhar Nori
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Thomas Gleixner
     
  • For granular accounting we need to store the direction and the
    information for the individual psets:

    - source or destination address, depending on direction
    - length

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Thomas Gleixner
     
  • Preparatory patch to support finer grained accounting.

    Move the edma_params array out of edma_desc so we can add further per
    pset data to it.

    Signed-off-by: Thomas Gleixner
    [joelf@ti.com: Fixed up hunk #3 in original patch to apply]
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Thomas Gleixner
     
  • It's likely that the caller investigates the status of a currently
    active descriptor. Make that simple check first and only rumage in the
    vchan list if that fails.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Thomas Gleixner
     
  • The residue reporting in edma_tx_status() is just broken. It blindly
    walks the psets and recalculates the lenght of the transfer from the
    hardware parameters. For cyclic transfers it adds the link pset, which
    results in interestingly large residues. For non-cyclic it adds the
    dummy pset, which is stupid as well.

    Aside of that it's silly to walk through the pset params when the per
    descriptor residue is known at the point of creating it.

    Store the information in edma_desc and use it.

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Joel Fernandes
    Signed-off-by: Vinod Koul

    Thomas Gleixner
     

29 Apr, 2014

1 commit


23 Apr, 2014

11 commits


21 Apr, 2014

4 commits


20 Apr, 2014

2 commits

  • …it/jolsa/perf into perf/urgent

    Pull perf/urgent fixes from Jiri Olsa:

    User visible changes:

    * Adjust symbols in VDSO to properly resolve its function names (Vladimir Nikulichev)

    * Improve error reporting for record session failure (Adrien BAK)

    * Fix 'Min time' counting in report command (Alexander Yarygin)

    Signed-off-by: Jiri Olsa <jolsa@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     
  • In the current version, when using perf record, if something goes
    wrong in tools/perf/builtin-record.c:375
    session = perf_session__new(file, false, NULL);

    The error message:
    "Not enough memory for reading per file header"

    is issued. This error message seems to be outdated and is not very
    helpful. This patch proposes to replace this error message by
    "Perf session creation failed"

    I believe this issue has been brought to lkml:
    https://lkml.org/lkml/2014/2/24/458
    although this patch only tackles a (small) part of the issue.

    Additionnaly, this patch improves error reporting in
    tools/perf/util/data.c open_file_write.

    Currently, if the call to open fails, the user is unaware of it.
    This patch logs the error, before returning the error code to
    the caller.

    Reported-by: Will Deacon
    Signed-off-by: Adrien BAK
    Link: http://lkml.kernel.org/r/1397786443.3093.4.camel@beast
    [ Reorganize the changelog into paragraphs ]
    [ Added empty line after fd declaration in open_file_write ]
    Signed-off-by: Jiri Olsa

    Adrien BAK